SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: electrococo en Jueves 9 de Septiembre de 2010, 12:06

Título: Archivo de configuracion externo al ejecutable
Publicado por: electrococo en Jueves 9 de Septiembre de 2010, 12:06
Hola, estoy haciendo un programa en C++. Este programa depende de muchas longitudes de arrays, tengo que comprobar las variables para que no se salgan de unos rangos.

Bien, todas estas constantes estan ahora dentro del programa pero me gustaria hacer un archivo externo que contenga todas estas constantes y que cuando ejecute el ejecutable las cargue. Asi puedo hacer el programa dinamico y versatil.

Pero no se como.

Alguien sabe como podria hacerlo??

Muchas gracias
Título: Re: Archivo de configuracion externo al ejecutable
Publicado por: shakka en Jueves 9 de Septiembre de 2010, 19:34
Haz que el programa procese parametros desde la linea de comandos, tomando un argumento que seria la ruta del fichero que tendria estas contantes.

http://publications.gbdirect.co.uk/c_bo ... _main.html (http://publications.gbdirect.co.uk/c_book/chapter10/arguments_to_main.html" onclick="window.open(this.href);return false;)
http://stackoverflow.com/questions/8656 ... -arguments (http://stackoverflow.com/questions/865668/parse-command-line-arguments" onclick="window.open(this.href);return false;)
Título: Re: Archivo de configuracion externo al ejecutable
Publicado por: electrococo en Viernes 10 de Septiembre de 2010, 08:54
Y que estructura tendria esta archivo que contiene las variables? Es decir, el problema que veo es que no sé como hacerlo.

Seria un archivo.h? un txt? Y como lo leo?
Título: Re: Archivo de configuracion externo al ejecutable
Publicado por: czealt en Domingo 12 de Septiembre de 2010, 03:03
Puedes usar la función fscanf() de la libreria estandar del C para leer valores númericos desde un archivo. Esta función opera de manera similar a scanf() sólo que en lugar de leer la entrada desde la entrada estandar (stdin) lo hace desde un archivo de disco.

Ejemplo:

valores.txt
Código: Text
  1.  
  2. val1 = 12345
  3. val2 = -256
  4. val3 = -12.335
  5.  
  6.  
  7.  
ejemplo.c
Código: Text
  1.  
  2. #include <stdio.h>
  3.  
  4. int main(void)
  5. {
  6.   FILE *arch_valores=fopen("valores.txt","r");
  7.   int val1,val2;
  8.   float val3;
  9.  
  10.   fscanf(arch_valores,"val1 = %dn",&val1);
  11.   fscanf(arch_valores,"val2 = %dn",&val2);
  12.   fscanf(arch_valores,"val3 = %fn",&val3);
  13.  
  14.   printf("val1 = %d, val2 = %d, val3 = %8.4fn",val1,val2,val3);
  15.  
  16.   fclose(arch_valores);
  17.   return 0;
  18. }
  19.  
  20.  
  21.  
Saludos  :good:
Título: Re: Archivo de configuracion externo al ejecutable
Publicado por: electrococo en Domingo 12 de Septiembre de 2010, 18:36
Gracias por una respuesta tan clara. Lo probare y os digo que tal.
Muchas gracias
Un saludo