[C con Clase] Manera sencilla de entrar muchos datos en un programa.

Salvador Pozo salvador en conclase.net
Mar Abr 17 15:35:12 CEST 2007


El pasado 2007-04-17 12:48:31, dani escribió:
 
d> Hola a todos,
Hola:

d> tengo un programa que como datos de entrada tiene unos 20 o 30, y los he metido dentro al definir las variables, a si que para cambiarlo cada vez he de compilar el programa de nuevo. 

Esto es lo que se denomina "hard coding", o esa, "codificación dura", que consiste en incluir valores de datos del programa directamente en el código, de modo que no pueden ser modificados por el usuario final.

En general, es una mala idea codificar de esta forma valores de parámetros y en general, cualquier cosa que no sea una constante auténtica.

d> Mi pregunta es si hay algún método de evitar esto y evitar a la vez tener que escribir por pantalla todos los datos cada vez que uso el programa aunque solo quiera variar uno de ellos. 

No sólo existen muchas formas de evitar esto, sino que es una necesidad hacerlo.

d> Mi idea es tenerlos todos en un archivo y que el usuario cambie un parámetro o varios (lo que le interese) y el programa los lea automáticamente todos al ejecutarse...

Esa es la solución más evidente. Estos ficheros se suelen denominar ficheros de configuración, y permiten personalizar, o adaptar el programa a diferentes entornos o situaciones.

Los ficheros de configuración, en su forma más simple, son ficheros de texto, que tienen la ventaja de poder editarse con cualquier editor. Se da el caso de que algunas aplicaciones pueden modificar esos valores, sobrescribiendo el fichero de configuración, y frecuentemente, no todos los valores pueden editarse de ese modo, haciendo imprescindible usar un editor en el resto de los casos, o si el programa no puede funcionar con ciertas combinaciones de valores.

Los ficheros de windows ".ini" son de ese tipo, y muchos ficheros con extensión ".cnf" con ".conf", también.

También se pueden usar ficheros binarios, pero, salvo que quieras ofuscar los valores almacenados (dificultando su edición), no es buena práctica.

De todos modos, hay una versión de la ley de Murphy que dice que, independientemente de la calidad de tu análisis, invariablemente algunas constantes se convertirán en variables, y algunas variables se convertirán en constantes, por lo tanto, es mejor que todo sea variable.

Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


Más información sobre la lista de distribución Cconclase