Entradas

Mostrando entradas de junio, 2010

Cambiar el color del texto de la consola

No es muy común en Windows pero quizás alguna vez quieras cambiar el color del texto/fondo de la consola, por ejemplo, que los mensajes de error salgan de color rojo. Creo que con el ejemplo es mas que suficiente para saber y entender como hacerlo. De todas formas, por si alguien anda un poco despistado pongo todos los posibles valores del segundo parámetro de la función que se encarga de cambiar el color. Y acuérdate que para poner varios hay que usar el operador binario OR | . FOREGROUND_INTENSITY FOREGROUND_RED FOREGROUND_GREEN FOREGROUND_BLUE BACKGROUND_INTENSITY BACKGROUND_RED BACKGROUND_GREEN BACKGROUND_BLUE #include <windows.h> HANDLE hstdout ; void write ( const char * message ) { DWORD t ; WriteConsole ( hstdout , ( const void *) message , lstrlen ( message ), & t , NULL ); } int main () { hstdout = GetStdHandle ( STD_OUTPUT_HANDLE ); write ( " \n\n " ); SetConsoleTextAttribute ( hstdout , FOREGROUND_INTEN

Elimina de un archivo todas las apariciones de un fragmento de texto

Lo mejor de saber programar es que cuando necesitas un programa muy concreto te lo puedes hacer tu, y este seguramente lo hayamos necesitado alguna vez. Al programa le pasas 2 parámetros, el primero el nombre del archivo de texto (txt, html... cualquiera que se pueda abrir con el notepad), y el segundo es el texto o palabra que quieres quitar (si lleva espacios ponlo entre comillas). #include <iostream> #include <fstream> using namespace std ; int main ( int argc , char * argv []) { if ( argc < 3 ) { cout << "QuitaPalabras.exe filename text" << endl ; return 1 ; } int wsize = strlen ( argv [ 2 ]); ifstream in ( argv [ 1 ], ios :: binary ); in . seekg ( 0 , ios :: end ); long size = in . tellg (); in . seekg ( 0 , ios :: beg ); size -= long ( in . tellg ()); char * buffer = new char [ size ]; in . read ( buffer , size ); in . close ();

Beep()

Un ejemplo de como hacer que suene el altavoz interno del PC con la funcion Beep(frecuecia,duracion) . #include <windows.h> int main () { for ( int i = 37 ; i < 32000 ; i += 100 ) { Beep ( i , 100 ); Sleep ( 101 ); } system ( "PAUSE" ); return 0 ; }

DvD - Musica XM

Imagen
Parte de los proyectos que empiezo terminan siendo abandonados a medias, por falta de tiempo o por que comienzo otros nuevos proyectos, pero en este caso, después de varios años, retomo el trabajo que empece con 15 o 16 años y por fin lo termino. Se trata de un "chipdisk" o programa con musica que ocupa muy poco, la gran mayoría son de tipo xm, y suenan como las de los "keygen". "DvD - Musica XM" es el nombre que le di en 2006 (DvD era mi alias por entonces) y contiene mas o menos las 50 canciones que mas me gustan de las que tengo de este tipo, que en algunos casos son muy difíciles de conseguir. Mirar que bien que me quedo la pequeña ilusión óptica de la de la figura 3D imposible que forman los botones, el texto y las estrellas. 50 cancones con una duracion total de casi 2 horas en tan solo un zip de 1.2 mb. DESCARGAR Tracklist 1 Moh - Vinterdack och data 0:46 2 Quazar - Funky Stars 2:20 3 Radix - Weather Girl 1:23 4 Saxxonpik

Algunas funciones útiles: C y C++

Algunas de las funciones son muy facilitas, otras no tanto y algunas seguramente nunca las utilices, pero están bien para aprender o usar en algunos proyectos. int MCD( const int a, const int b ) { int m = (a<b?a:b); // min(a,b) while ( ( a % m != 0) || (b % m != 0 ) ) m--; return m; } int MCM( const int a, const int b ) { int m = (a>b?a:b); // max(a,b) while ( ( m % a != 0) || (m % b != 0 ) ) m++; return m; } int min( const int a, const int b ) { return ( a < b ? a : b); } int max( const int a, const int b ) { return ( a > b ? a : b); } int abs( const int a) { return ( a < 0 ? -a : a); } typedef unsigned long long BIG; BIG pow( const int a, int b) { unsigned int n = 1; while(b--) n *= a; return n; } BIG factorial(unsigned int n) { if (n <= 1) return 1; for(int i=n-1; i>1 ;i--) n = n * i; return n; } BIG fibonacci(unsigned int n) { BIG r, t0=0, t1=1; if(n == 0) return 0; if