Publi

  • Obtener información básica sobre procesos del sistema Linux en C y C++ (parte 3)

    procesos del sistema

    Cuando te independizas y te vas a vivir a un piso o a una casa te preguntas, ¿cómo serán mis vecinos? Por un lado tendremos al típico que deja la basura en la puerta de su casa durante todo el día y esparce olores al resto de los vecinos; o el que desea compartir la música que escucha con los demás y el que cuando entra al edificio y ve que vas a entrar va corriendo al ascensor para no esperarte… Aunque como procesos en ejecución en un entorno Linux muchas veces queremos saber cómo son nuestros vecinos y, al contrario de lo que puede parecer en una comunidad de vecinos, éstos suelen ser mucho más receptivos y dispuestos a darnos información.… Leer artículo completo

  • Cómo buscar en un vector o una lista de mapas en C++

    photo-1433357094834-cdeebc8e9dce_r

    Una de las cosas que hacen mágico C++ es que podemos crear estructuras realmente grandes valiéndonos de las clases y estructuras de que disponemos. Vale, en otros lenguajes también podemos hacerlo, pero en C++ parece más grande aún dada la literatura de los tipos. Bueno, en Java podemos llegar a tener mucha más literatura, pero hoy el tema es C++.

    ¡ Una lista de mapas ! ¿Para qué?

    Bueno, el primer paso es hacer un ejemplo práctico para el que una lista de mapas puede ser útil y, por ejemplo, puede ser para almacenar información estructurada.… Leer artículo completo

  • Cómo buscar un archivo en diferentes rutas en C++

    photo-1442849914809-0df6c377974f_r

    Es algo muy común, hemos creado un software que necesita ciertos archivos para ejecutarse. El ejemplo más común es el archivo de configuración. Tenemos que cargar la configuración de nuestro programa, pero antes, tenemos que saber dónde está, y hay varias alternativas. Pero podemos utilizar el mismo programa para buscar plantillas, páginas web, archivos de datos, en fin, lo que queramos.

    Nota: Estos programas están hechos para Linux, aunque si queremos usarlos en Windows, bastará con cambiar la barra / por \ o tal vez queramos hacer una opción multiplataforma, pero no deberíamos tener que cambiar muchas cosas.… Leer artículo completo

  • Crear mapas HTML5 interactivos con RaphaelJS


    Vivimos en pleno auge del HTML5 y es que con esta tecnología se pueden hacer cosas muy interesantes, de forma muy rápida, elegante y multiplataforma sin necesidad de recurrir a herramientas de terceros como Flash, y eso está muy bien. Personalmente nunca me gustó Flash, así que, tenemos muchas cosas chulas por hacer.

    Hace unos días, para un pequeño proyecto surgió la idea de crear un mapa interactivo de municipios, la idea está bien y hay mucho trabajo que hacer.… Leer artículo completo

  • Reemplazar cadenas en C++, esta vez desde un map, para múltiples sustituciones

    Hace unos días hablamos de cómo reemplazar cadenas de texto en C++, tuvimos un método para copiar y pegar en nuestros proyectos muy fácil, pero cuando queremos hacer múltiples sustituciones podemos tener un problema: demasiadas llamadas a la función que producirán un código un poco feo…

    Para ello podemos utilizar el contenedor map de C++ y crear la misma función replace() que creamos hace unos días, pero esta vez aceptando un mapa como argumento, así buscaremos en cada una de las claves, y lo sustituiremos por cada uno de los valores que encontremos:

    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
    #include <iostream>
    #include <string>
    #include <map>

    using namespace std;

    string replace(string source, std::map<string,string>strMap, int offset=0, int times=0)
    {
      int total = 0;
      string::size_type pos;

      for (std::map<string, string>::iterator i=strMap.
    Leer artículo completo
  • Invocando métodos por su nombre (en string) con C++

    Vamos a implementar una pequeña aplicación en la que el usuario pueda elegir el método de la clase que va a ejecutarse, vamos a tener una clase en la que crearemos varios métodos “ejecutables” por el usuario.
    En el ejemplo que presento, aunque sea un poco repetitivo, estoy suponiendo que C++ no tiene reflexion, esto, dicho de una forma rápida es que una clase tenga la facultad de conocer sus miembros, podremos llamarlos, pero no podremos decirle que nos dé una lista.… Leer artículo completo

  • Activando teclas para obtener nuevas funcionalidades.

    tecladoEn ocasiones, adquirimos un teclado nuevo, con muchas teclas especiales, o si compramos un nuevo portátil, seguramente éste tenga varias teclas especiales que el sistema por defecto no identifica.
    El problema la mayoría de las veces, es que tenemos una tecla, cuyo código no es reconocido. Para ello tenemos la utilidad xmodmap, podemos hacer que una tecla determinada se comporte como otra. Tenemos un listado completo de los códigos de las teclas aquí [Link original] y aquí [Original].… Leer artículo completo

  • Almacenando elementos a pares en C++

    En numerosas ocasiones necesitamos almacenar dos datos de diferente o igual tipo bajo la misma variable. Es más, en ocasiones estarán relacionados y no debemos separarlos o no tendría sentido.

    La forma más inmediata es almacenar cada dato por su lado y diseñar los algoritmos de modo que siempre vayan los dos datos juntos, aunque tendremos un problema:

    • Será difícil de mantener, tenemos siempre que asegurar que los datos siempre vayan juntos.
    Leer artículo completo