Pregunta

Básicamente, quiero tener mi programa de recuperar diversas variables de la unidad de disco duro para su uso en el programa. Supongo, antes de pedir detalles, debería verificar que es aún posible. Es?

Si es así, ¿cuál es la mejor manera? He visto el uso de archivos ini, pero no sé cómo recuperar datos específicos de los archivos .ini. ¿Es lo mismo como un archivo de texto que haya metido con las variables para asegurarse de que siempre estarán en la línea x? Por ejemplo:

ifstream variables("variables.ini");

//some code later
//assume line 'x' holds a variable

if(variables.good())
{
   variables.get(x);
}

//or whatever =/

Estoy un poco en una pérdida para saber qué hacer aquí.

Editar:. Mi idioma de su elección es C ++

¿Fue útil?

Solución

Las primeras preguntas que usted necesita para hacer frente son el quién y el por qué. Sus opciones en el ¿Cómo se desprende de estas.

Entonces, ¿quién (o qué) serán acceder a los datos? Si es sólo el propio programa a continuación, puede almacenar los datos que le apetezca - archivo binario, XML, bases de datos, archivos ini, lo que sea. Sin embargo, si los datos tienen que ser de fácil acceso para el usuario para que puedan cambiarlo antes de una carrera a continuación, un archivo de texto como un ini, que puede ser editado fácilmente, tiene sentido. Con el fin de editar los datos almacenados en otros formatos puede que tenga que escribir un programa totalmente separada sólo para manipular los parámetros almacenados. Tal vez eso tiene sentido en su situación o tal vez no, pero habrá más trabajo.

Si decide ir a la ruta ini entonces usted está en el camino correcto. Ellos son sólo archivos de texto. Un formato común es tener secciones (generalmente entre paréntesis), y los pares entonces clave / valor dentro de las secciones. Por lo general, comentan las líneas comienzan con punto y coma, un buen toque para los usuarios que quieran avanzar y retroceder entre los ajustes.

Así que algo como esto:

[System]
    datapath = /home/me/data

[Application]
    start_count = 12
;   start_count = 20  //this is a comment

Usted no tiene que preocuparse de líneas específicas para sus datos. Que acaba de leer a través del archivo línea por línea. Las líneas vacías o comentario se botan. Se toma nota de lo que la sección que se encuentra y de procesar los pares clave / valor.

Hay muchas maneras de almacenar el archivo analizado en su programa. Un simple puede ser para concatenar el nombre de sección y la clave en una llave para un mapa. El valor (del valor pair / clave) sería los datos para el mapa.

Así "Systemdatapath" podría ser una clave del mapa y su valor sería "/ home / me / datos". Cuando el programa necesita utilizar los valores que sólo se ve hacia arriba por la clave.

Eso es lo básico. En última instancia, tendrá que embellecerlo. Por ejemplo, los métodos para recuperar los valores por tipo. P.ej. getString (), getInteger (), getFloat (), etc.

Otros consejos

Usted decide el formato del archivo .ini de la aplicación. Suelo trabajar con XML porque entonces se puede organizar su información de alcance y ya hay un montón de librerías para manejar el almacenamiento y recuperación de información de árboles XML.

Editar: para C ++ - http://xerces.apache.org/xerces-c/

Si vas a estar tirando de los valores de los archivos con frecuencia, y especialmente si tiene que actualizar (persistir) esos valores, una base de datos es una gran opción. También le dará un buen rendimiento como el conjunto de datos crece.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top