Entradas

Mostrando entradas de 2010

FontsViewer

Imagen
FontsViewer es un pequeño programa para visualizar y comparar las diferentes tipografías que se encuentran instaladas en tu ordenador. Entres su capacidades se encuentra la posibilidad de cambiar el color de fondo y del texto de la fuente que estamos viendo, también se puede editar el texto y cambiar su tamaño, por ultimo la lista de fuentes la puedes ver de dos maneras diferentes, una lista estándar con todos lo nombres de fuentes y otra con el tipo de fuente ya aplicada a su nombre. Screenshot Descargar Descargar Source Code Licencia FontsViewer se se encuentra vajo la licencia nueva BSD , por lo que si quieres o necesitas modificar algo de este programa para que quede a tu gusto, o hacer uno aun mejor, que nada te lo impida.

HexDump

Imagen
HexDump es un visor hexadecimal simple que se utiliza principalmente a través de la linea de comandos. Para usarlo simplemente ejecútalo con el nombre de un archivo como primer argumento: HexDump.exe file.ext Es muy útil en este caso redireccionar la salida a un archivo de texto para que quede guardado y pueda verse con mas calma: HexDump.exe file.ext &gt file_hex.txt Screenshot Descargar Source Code Código fuente #include <stdio.h> int main ( int argc , char * argv []) { if ( argc != 2 ) { printf ( "Usage: HexDump file \n " ); return 1 ; } FILE * file = fopen ( argv [ 1 ], "rb" ); if (! file ) { printf ( "El fichero no existe o no puede ser abierto. \n " ); return 2 ; } char d [] = " \0" ; int bytes , index = 0 ; while ( bytes = fread ( d , 1 , 16 , file )) { printf ( "%08X%c"

PasswdGen

PasswdGen es un programa o utilidad CLI que genera contraseñas completamente aleatorias del tamaño deseado y con los caracteres que prefieras. Modo de uso: PasswdGen -s size -c chars [-h] Con -s se indica el tamaño de la contraseña y con -c la lista con todos los caracteres posibles. Con -h mostramos la ayuda. Ejemplo: PasswdGen -s 10 -c 0123456789ABCDEF Generaría por ejemplo 93E41C6E20 Código fuente: // PasswdGen.cpp #include <iostream> using namespace std ; void Usage () { cout << endl << "PasswdGen 0.1 - davidxl.blogspot.com" << endl << endl ; cout << "Usage: PasswdGen -s <size> -c <chars> -h" << endl ; cout << " -h : Show Help (This)" << endl ; cout << " -s : Number of characters in password (default 8)" << endl ; cout << " -c : characters of password (default a..zA..Z..0..9)" << end

Generar números aleatorios en C

En algunas ocasiones necesitamos una función que nos genere números aleatorios, C dispone de rand() , que al ser llamada retorna un numero comprendido entre 0 y 32767. Esta función no resuelve nuestro problema si lo que queremos es un numero aleatorio cullo valor se encuentre entre, por ejemplo, 20 y 70, por lo que a continuación muestro el código de la función rand() sobrecargada para que se pueda establecer el mínimo y máximo, frand() que genera numeros en coma flotante entre 0 y 1 y un ejemplo para poner a prueba estas funciones. #include<iostream> using namespace std ; // retorna un numero del intervalo [min,max] int rand ( int min , int max ) { return rand () % ( max - min + 1 ) + min ; } // retorna un numero del intervalo [0,1] float frand () { return float ( rand ())/ 32767.0 ; } // retorna un numero del intervalo [min,max] int myrand ( int min , int max ) { return rand ()*( max - min + 1 )/ RAND_MAX + min ; } int main

ColorPicker sin imágenes, solo js+css3

Imagen
A modo de experimento y base para un próximo proyecto hice un ColorPiker que no usa ninguna imagen, ya que las he sustituido por css gradients, por lo que solo es compatible de momento con Chrome y Firefox. Descargar Source Code

Calcular factores primos de un numero

Este programa es variación de Saber si un numero es primo y Calculando números primos y como dice en el titulo se encarga de calcular los factores primos de un numero. Por razones desconocidas falla algunas veces, no con determinados números sino de forma aleatoria, todavia no se que es lo que lo causa. #include <iostream> #include <math.h> using namespace std ; int main () { start : cout << endl << endl ; unsigned int x , a , i = 3 , j , n = 2 , d , max ; unsigned int * p = new unsigned int [ x / 3 ]; p [ 0 ] = 2 ; p [ 1 ] = 3 ; cin >> x ; cin . clear (); if ( x < 2 ) { cout << x << " no es mayor que 1." << endl ; goto start ; } top : while ( x > 1 ) { for ( a = 0 ; a < n ; a ++) { if ( x % p [ a ]== 0 ) { x /= p [ a ]; cou

Saber si un numero es primo : C

Hace unos meses publiqué el código de un programa que calculaba muy rápido todos los números primos desde cero a un numero dado. [IR] Hoy pongo otro parecido, basado en el anterior pero que calcula y dice si un numero es primo o no. #include <iostream> #include <math.h> using namespace std ; int main () { top : unsigned int x , i = 3 , j , n = 2 , d , max ; cin >> x ; cin . clear (); if ( x < 2 ) cout << x << " no es mayor que 1." << endl ; else if ( x < 4 ) cout << x << " es primo." << endl ; else if ( x % 2 == 0 ) cout << x << " no es primo." << " Es divisible por 2" << endl ; else if ( x % 3 == 0 ) cout << x << " no es primo." << " Es divisible por 3" << endl ; else { int *

Generar imagen de un archivo de música

Imagen
Hoy voy a mostrar el código fuente de un programa que hice y que, como se ve en la imagen de abajo, genera una imagen a partir de un archivo de música. El programa no es de mas de 80 lineas, y usa la librería " Bass " para leer los archivos de música y " easyBMP " para generar la imagen. Seguramente muchos estaréis pensando que bmp es peor que, por ejemplo,  png o jpg, pero aunque ocupe mas es el mas fácil y simple. Por otro lado, el programa esta sin optimizar, y seguramente tenga algunos pequeños fallos. Descargar #include "bass.h" #include "EasyBMP.h" using namespace std ; #define WIDTH 1520 #define HEIGHT 150 int main ( int argc , char * file []) { if ( argc < 2 ) cout << "Usage Music2bmp file1.mp3 ... fileX.ext" << endl ; else if ( HIWORD ( BASS_GetVersion ())!= BASSVERSION ) cout << "An incorrect version of BASS.DLL was loaded" << endl

1Kb JavaScript Calendar

Imagen
Otro proyecto más terminado, se trata de un calendario JavaScript, en concreto es una única función que genera un calendario, con la posivilidad de cambiar el primer dia de la semana, ya que en algunos paises acostumbran a empezar por el domingo, también dispone de dos botones para cambiar de mes, se puede cambiar el idioma, y todo esto en tan solo un kilobyte. Ver / Descargar Ver código fuente

ColorCtrl

Imagen
ColorCtrl es una pequeña utilidad hecha con el Visual C# 2010 que te servirá para configurar el brillo, contraste y gamma de tu pantalla, con la posibilidad de ajustar estos parámetros en cada color independientemente. DESCARGAR SOURCE CODE NOTA: Para que funcione requiere tener instalado ".net framework 3.5"

Captcha graciosa

Imagen
Intentando descargar un archivo de SharingMatrix....

Explorador de archivos con c++

En esta entrada voy a mostrar la manera de ver el contenido de una carpeta o buscar algún archivo usando c++. #include<windows.h> #include<iostream> using namespace std ; int main () { WIN32_FIND_DATA FindFileData ; HANDLE hFind ; hFind = FindFirstFile ( "C: \\ *" , & FindFileData ); if ( hFind == INVALID_HANDLE_VALUE ) { cout << "FindFirstFile failed: " << GetLastError () << endl ; return 1 ; } do cout << FindFileData . cFileName << endl ; while ( FindNextFile ( hFind , & FindFileData )); FindClose ( hFind ); return 0 ; } Como se puede ver, hace uso de las funciones FindNextFile() y FindFirstFile() y de la estructura WIN32_FIND_DATA() . El primer parámetro de FindFirstFile() puede ser el nombre de un archivo o directorio y pueden usarse los caracteres '*' y '?'

Controla el nivel de backlight de una lcd

Hoy en día la mayoría de los portatiles, por no decir todos permiten cambiar el nivel backlight o de luz que emite la pantalla. Aunque me a costado he conseguido encontrar la información suficiente para poder hacer un primer ejemplo funcional, por lo menos en mi Asus EeePC, aunque estoy seguro que funciona en la mayoría. Las primeras 25 líneas no harían falta si tienes el kit de desarrollo de drivers de Windows. #include <windows.h> #include <iostream> using namespace std ; typedef struct _DISPLAY_BRIGHTNESS { UCHAR ucDisplayPolicy ; UCHAR ucACBrightness ; UCHAR ucDCBrightness ; } DISPLAY_BRIGHTNESS , * PDISPLAY_BRIGHTNESS ; #define FILE_DEVICE_VIDEO 0x00000023 #define METHOD_BUFFERED 0 #define FILE_ANY_ACCESS 0 #define CTL_CODE(a,b,c,d) ((a)<<16 | (b)<<2 | (c)<<14 | (d)) #define IOCTL_VIDEO_QUERY_SUPPORTED_BRIGHTNESS \ CTL_CODE(FILE_DEVICE_VIDEO, 0x125, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_V

calcular CRC32 facil

Calcular el CRC32 de un archivo o determinados datos es útil para saber si los datos se han transferido correctamente. El valor del crc del archivo de origen tiene que ser exactamente igual que el de destino, en caso contrario el archivo de destino es diferente (erróneo). PHP tiene una función que lo calcula: function checksum ( $filename ) { return ( strtoupper ( dechex ( crc32 ( file_get_contents ( $filename ))))); } En C o C++ la función la tienes que hacer tu o usar esta, tienes la posibilidad de usar una tabla ya procesada o de generarla con la función initialise_crc32_table() . #include <iostream> using namespace std ; unsigned crc32_table [] = { 0x00000000 , 0x77073096 , 0xee0e612c , 0x990951ba , 0x076dc419 , 0x706af48f , 0xe963a535 , 0x9e6495a3 , 0x0edb8832 , 0x79dcb8a4 , 0xe0d5e91e , 0x97d2d988 , 0x09b64c2b , 0x7eb17cbd , 0xe7b82d07 , 0x90bf1d91 , 0x1db71064 , 0x6ab020f2 , 0xf3b97148 , 0x84be41de , 0x1adad47d , 0x6

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 ; }