• Martes 12 de Noviembre de 2024, 21:33

Autor Tema:  ..:: Archivos ::..  (Leído 1506 veces)

Hobbit

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
..:: Archivos ::..
« en: Miércoles 3 de Diciembre de 2003, 01:17 »
0
Hello World.

Como  trabajar con un fichero que tenga cierta estructura?

struct clientes
{
  char rut[12], nom[15], ape[30], dir[15], fono[8], email[25];
}

char linea[100];

Lo que hago por el momento es leer por linea

fgets(linea,10,file);

como lo hago para salto de linea?

Si alguien me puede ayudar estare muy agradecido.  :beer:

Martin Candurra

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Re: ..:: Archivos ::..
« Respuesta #1 en: Miércoles 3 de Diciembre de 2003, 10:24 »
0
Mira la funcion fgets es para trabajar con archivos de texto.
Cuando el archivo a leer tiene una estructura del tipo que mostras te conviene guardarlo y leerlo como binario.

Debrías leer sobre las funciones

ssize_t fread(void *p, size_t tamaño, size_t bloques, FILE *);
ssize_t fwrite(void *p, size_t, size_t, FILE *);

Donde tamaño debería ser = sizeof(struct clientes);
y bloques debería tomar como valor la cantidad de bloques que querés leer de una vez.
No te olvides de tener memoria reservada en p, así evitas problemas.

mabrev

  • Miembro MUY activo
  • ***
  • Mensajes: 126
    • Ver Perfil
Re: ..:: Archivos ::..
« Respuesta #2 en: Miércoles 3 de Diciembre de 2003, 14:15 »
0
Hola:

  Otra función muy útil (al menos para mí), es fscanf, qué es muy similar al scanf, funcionando igual que ésta en cuanto a parámetros, sólo que en vez de leer de la entrada estándar, lee de un fichero.

    int fscanf(FILE *fichero, const char *formato, ...);

Saludos.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: ..:: Archivos ::..
« Respuesta #3 en: Domingo 7 de Diciembre de 2003, 16:41 »
0
Tambien lo puedes hacer con fread. :devil:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io