Programación General > C/C++

 Re: dudas

(1/1)

GallaZ-:
Pues si.. tengo algunas dudas sobre archivos.
el formato de mi fichero de configuracion es el siguiente:
[TIPO]
variable1=la vida es bella
variable2=10
variable3=50
[END]

Lo que quiero hacer es el programa lea primero si es un [TIPO], si lo es, que lea las variables y las almacene en una variables del programa. No quiero modificar los datos del archivo, solo leerlos. Los problemas que he tenido al intentar crear esta funcion, ha sido la de no poder encontrar los datos necesarios.
La verdad que tu explicacion es muy buena.. y te lo agradezco, pero la verdad es que con los ficheros ando muy verde aun.

Un Saludo, GallaZ-.

GallaZ-:
el mensaje es respuesta de la respuesta de problema con archivos de configuracion.

JuanK:
Bueno como eres nuevo en el foro, te comento que en general trato de no dar mucho codigo a nadie, aslta que demuestre que  esta haciendo algo por si mismo.
La función que necesitas es relativamente sencilla, asi que espero que una vez aprendas un poco mas de archivos la puedas hacer por ti mismo, aqui anexo ejemplo de manejo de archivos, este ejemplo carga los datos de un archivo y los almacena en una estructura.. como podras ver es una funcion no un programa.

No te lies con lo de la estructutra, simplemente presta atencion en lo que se hace para leer el formato de archivo:
 
--- Código: Text --- #include <stdio.h>#include <io.h>#include"ordenamiento.h"#define NOEXF 23#define NOLEN 24#define BUFFI 4 struct Data{  struct Data *Pre,*Post;  int info;};  /*captura datos para un arreglo, desde un archivo  de texto, los convierte en enteros y seguidamente  llena una estructura dinamica.  El archivo debe poseer elformato:  xxxx,xxxx,xxxx,xxxx,   para que la funcion lo pueda entener*/int Lectura(char *FileName,struct Data *Info){  FILE *fp=NULL;  char buff[BUFFI];  int fd,multip=0,buffy;  struct Data *aux;   if((fp=fopen(FileName,"r"))!=NULL)  {    fd=fileno(fp);    multip=filelength(fd);    if(multip%(BUFFI+1)==0)    {      Info->Pre=NULL;      Info->info=0;      Info->Post=NULL;       while(multip>0)      {        fread(buff,sizeof(buff),1,fp);        Info->info=strtol(buff,NULL,10);        aux=(struct Data *)malloc(sizeof(struct Data));        Info->Post=aux;        aux->Pre=Info;        aux->Post=NULL;        Info=aux;        fseek(fp,1,SEEK_CUR);        multip-=(BUFFI+1);      }      free(aux);      free(Info);      fflush(fp);      fclose(fp);      close(fd);    }    else    {      return NOLEN;//Archivo de tama¤o inapropiado no es multiplo de BUFFY+1    }  }  else  {    return NOEXF;//Archivo no existe  }}  
Si te da lio, me avisas y trato  de sacarte un ejemplo mas  cercano a lo que necesitas.

GallaZ-:
Bien, muchas gracias... es una ejemplo muy bueno. De esa funcion espero poder implementarlo a mi gusto y a mi forma de acceder a los datos.

Saludos, GallaZ-.

Navegación

[0] Índice de Mensajes

Ir a la versión completa