SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Guardiola en Domingo 28 de Diciembre de 2008, 14:54

Título: Trabajar con txt
Publicado por: Guardiola en Domingo 28 de Diciembre de 2008, 14:54
Hola

Necesito ayuda para trabajar con txt en C++, he estado buscando por Google, pero no encuentro lo que necesito.

Imaginemos que tengo este archivo de texto:
Código: Text
  1. Juan;20;01;84;pintor;casado;
  2. Raul;10;11;90;estudiante;soltero;
  3. Miguel;15;02;60;jubilado;viudo;
  4.  

Lo que quiero hacer es meter de cada linea, el nombre, fecha de nacimiento, oficio y estado civil en un registro con esta forma:
Código: Text
  1. typeder struct{
  2. char nombre[45], oficio[45], ecivil[45];
  3. int dia, mes, anno;
  4. } TRegistro
  5.  

Y una vez introducidos los datos en el registro al modificarlos, como guardar los nuevos datos en el mismo txt sustitullendolos por los que habian anteriormente.
Espero vuestra ayuda, muchas gracias de antemano, un saludo ;)
Título: Re: Trabajar con txt
Publicado por: ProfesorX en Domingo 28 de Diciembre de 2008, 21:07
Yo lo haria de la siguiente manera:

1. Leer cada linea del archivo de texto con fgets()

2. Separar cada linea leida, utilizando strcpy o strtok para separar la linea en los datos que quieres.

3. Guardar todos los registros utilizando fputs() o fprintf(), poniendo ademas los separadores necesarios, en un nuevo archivo.

4. Borrar el archivo anterior.

5. Cambiar el nombre del nuevo archivo, de tal manera que tenga el nombre del archivo anterior.

Creo que con eso ya tienes una base para trabajar y saber que hacer.

Saludos :hola:
Título: Re: Trabajar con txt
Publicado por: Guardiola en Domingo 28 de Diciembre de 2008, 21:16
Muchas gracias
Luego empezare a hacerlo a ver que tal me sale  ;)
Título: Re: Trabajar con txt
Publicado por: AnimaSubtilis en Lunes 29 de Diciembre de 2008, 14:03
Buenas...

pues a mi me parece que es mas sencillo utilizar la libreria fstream...

le doy un par de pistas

fstram archi //eso es la declaracion del archivo

archi.getline//busque sobre eso y no es nescesario utilizar nada mas...

Espero que sea de ayuda...cualquier cosa muestrenos el avance y hay miramos  :P
Taluego......