Publi

  • Accediendo a bases de datos MySQL desde C++

    photo-1423592707957-3b212afa6733_r

    Muchos estamos acostumbrados a utilizar bases de datos en PHP pero cuando se trata de un programa de escritorio almacenamos los cambios en archivos sin contemplar esta posibilidad.

    Usar una base de datos puede ser un gran aliado a la hora de hacer aplicaciones que almacenen gran cantidad de información o vayamos a acceder desde varios puntos a dicha información (programas multipuesto, por ejemplo).

    También es de gran utilidad si construimos un software que haga más ligeras ciertas tareas dentro de un servidor web (necesitamos la posibilidad de ejecutar programas sobre el servidor y tal vez de compilarlos allí, pero es una opción bastante buena, en ocasiones un script puede ejecutarse de forma demasiado lenta.… Leer artículo completo

  • Guardar un log con las excepciones producidas en C++

    logSobre todo a la hora de crear un programa se pueden generar muchas excepciones, bueno y cuando estamos usándolo de forma normal también, y todos sabemos del típico cliente/amigo/usuario que nos llama de madrugada o a una hora normal diciendo:
    – «El programa me da error» –
    – «¿Qué error te da el programa?» – respondemos
    – «Nada error, solo eso» –
    – «Bueno, ¿seguro que no salía nada más?» – insistimos
    – «Sí, muchas letras y cosas que no tenían sentido» – nos responde para bajarnos la moral – «¿qué puede ser?»
    Nuestra respuesta ahora depende de la relación que tengamos con esa persona, ya sea cliente, amigo, usuario, desconocido… o destornillador, digo, desarrollador (que hay algunos que también…).… Leer artículo completo

  • Escribir con colores en la terminal al estilo C++

    Hace mucho, publicaba en esta web stermp, es una versión libre de la biblioteca conio para C. Esa biblioteca muy popular en los 90 escribía en colores por la consola, pero propietaria y sólo para entornos DOS y Windows.

    Aunque cuando utilizamos C++, es normal querer utilizar un método más acorde con lo que estamos haciendo, es decir, utilizar streams.

    Para ello, podemos utilizar el siguiente código:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    class ccolor
    {
     public:
      ccolor(unsigned short c)
        {
          setColor(c);
          background=-1;
        }

      ccolor(unsigned short fc, unsigned short bc)
        {
          setColor(fc);
          background=(bc<BRILLO_MIN)?
    Leer artículo completo
  • Algoritmos: Formas de transformar un entero a cadena en C y C++

    8733967750_f80410aa6b_bEn ocasiones disponemos de un entero (int) y necesitamos ese mismo valor en forma de cadena de caracteres (char* en C y string en C++). Ponerlo en pantalla es fácil, nos basta con printf() o cout, pero si queremos transmitir el dato, almacenarlo o hacer que forme parte de un dato más grande, tendremos la necesidad de transformar el tipo de dato.

    Para ello existe una función de stdlib.h no estándar itoa(), y como no es estándar no existe en todas las implementaciones de C, por lo que es conveniente desarrollar una versión de esta función para que podamos compilar nuestro programa en todos los compiladores, o si no disponemos de esta función, para poder utilizarla.… Leer artículo completo

  • Obtener la fecha y hora formateada en C

    Es un código muy simple, aunque tal vez si estáis empezando os resulte muy útil para que vuestros programas sean capaces de decir la hora o hacer alguna operación con la fecha

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <time.h>
    #include <stdio.h>

    int main()
    {
      time_t t;
      struct tm *tm;
      char fechayhora[100];

      t=time(NULL);
      tm=localtime(&t);
      strftime(fechayhora, 100, "%d/%m/%Y", tm);
      printf ("Hoy es: %s\n", fechayhora);
    }

    La forma de utilizar strftime() es pasando los siguientes parámetros:

    • Un array de char o char* donde almacenaremos la cadena de caracteres resultante
    • El tamaño máximo de caracteres que podemos ocupar, es decir, el tamaño reservado para la variable anterior
    • El formato en el que queremos presentar los datos, con algunas palabras clave que indicarán dónde va cada uno de los datos, los más importantes son:
      • %s : Número de segundos desde la época: 1 de Enero del 1970 a las 00:00
      • %d : Día del mes (del 01 al 31)
      • %m : Mes (del 01 al 12)
      • %Y : Año (con 4 cifras.
    Leer artículo completo
  • Modificar brillo y contraste de cada componente de una imagen en C

    windmill

    Un poco do it yourself y friki a la vez es este articulo. En él, vamos a cargar una imagen jpg y vamos a cambiar el brillo y el contraste de la foto que hay en el encabezado de la página, todo desde nuestro programa, simplemente utilizando libjpeg ( $sudo apt-get install libjpeg8-dev ) para cargar y guardar de nuevo la foto. El efecto lo aplicaremos con una función que trabaje con los pixels de la imagen.… Leer artículo completo

  • Leer un archivo XML en C con libxml2 (con todos los nombres, atributos y contenidos)

    xmlxmlHoy en día, para muchas cosas se utiliza el metalenguaje XML ofrece una forma inteligible tanto para la máquina como para el humano.

    Bien, el objetivo es que podamos leer y escribir información XML, y ahora toca hacerlo desde C, debemos ser capaces de extraer los nombres de las etiquetas, atributos y contenidos.

    El código que muestro aquí es una vuelta de tuerca de uno de los ejemplos que aparecen en la web.… Leer artículo completo

  • KDE en La Red Social

    Desde el minuto 8:00 en la película que ilustra cómo se creó Facebook desde que Mark Zuckerberg inició su imperio, David Fincher quiso dejar claro que fue con máquinas Linux.
    redsocial_kde11
    Después de muchos pantallazos, en el 11:46 tenemos esto:
    redsocial_kde2
    Y bueno, durante el principio de la película hay muchas muestras de ordenadores y sistemas operativos (salen ordenadores de muchas personas, comprendo que no todos usen el mismo SO); tras media hora de película, en el 33:39 vuelve a salir otra pantalla completa (mientras tanto no creáis que no salen pantallazos con KDE)
    redsocial_kde3
    Y nos remontamos al 1:54:22 donde sigue con la misma versión de KDE de siempre:
    redsocial_kde4Leer artículo completo