Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Ficheros C++

Estas en el tema de Ficheros C++ en el foro de C/C++ en Foros del Web. bueno aqui con una duda tengo un proyecto donde tengo que leer de un archivo .txt cierta informacion de la siguiente manera: 1|Nombre|Apellido|Pais|Telefono|E-mail|Edad|Sexo|Fecha Nacimiento 2|Nombre|Apellido|Pais|Telefono|E-mail|Edad|Sexo|Fecha ...
  #1 (permalink)  
Antiguo 13/08/2013, 21:39
 
Fecha de Ingreso: agosto-2013
Mensajes: 2
Antigüedad: 10 años, 8 meses
Puntos: 0
Busqueda Ficheros C++

bueno aqui con una duda tengo un proyecto donde tengo que leer de un archivo .txt cierta informacion de la siguiente manera:

1|Nombre|Apellido|Pais|Telefono|E-mail|Edad|Sexo|Fecha Nacimiento
2|Nombre|Apellido|Pais|Telefono|E-mail|Edad|Sexo|Fecha Nacimiento
.
.
.
.
Y asi sucesivamente, pero mi problema es que solo me lee el nombre y lo almacena en la variable codigo y luego se queda trabado en uno de los dos ciclos while.

Nota: Esta informacion debo de leerla del fichero .txt y cargarla a una estructura.

Agradeceria mucho si alguien me pudiera brindar una ayuda, adjunto el codigo que llevo de momento.

#include _stdio.h_
#include _string.h_
#include _conio.h_

int main()
{

FILE *contenido;
char *pathArchivo;
char linea [250];

char *codigo;
char *nombre;
char *apellido;
char *direccion;
char *correo;
char *edad;
char *telefono;
char *token;
int opcion=1;
int contador=1;

pathArchivo="Clientes.txt";
contenido=fopen(pathArchivo, "r");

if(!pathArchivo)
printf("ARCHIVO NO EXISTE, VERIFIQUE LA RUTA DE ACCESO PARA %s", pathArchivo);

else
{
printf("ARCHIVO ENCONTRADO SATISFACTORIAMENTEnn");

while(!feof(contenido))
{
fgets(linea, 250, contenido);
token=strtok(linea, "|");
strcpy(linea, token);

while((token=strtok(NULL, "|"))!=NULL)
{
switch(opcion)
{
case 1:
{
strcpy(codigo, token);
printf("Codigo: %s", codigo);
opcion++;
break;
}

case 2:
{
strcpy(nombre, token);
printf("Nombre: %s", nombre);
opcion++;
break;
}

case 3:
{
strcpy(apellido, token);
printf("Apellido: %s", apellido);
opcion++;
break;
}

case 4:
{
strcpy(direccion, token);
printf("Direccion: %s", direccion);
opcion++;
break;
}

case 5:
{
strcpy(correo, token);
printf("Correo: %s", correo);
opcion++;
break;
}

case 6:
{
strcpy(edad, token);
printf("Edad: %s", edad);
opcion++;
break;
}

case 7:
{
strcpy(telefono, token);
printf("Telefono: %s", telefono);
opcion=1;
break;
}
}
}
contador++;
}
}

getch();
}
  #2 (permalink)  
Antiguo 22/08/2013, 21:49
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 11 años, 9 meses
Puntos: 22
Respuesta: Ficheros C++

Hola.

Si entendí bién que buscas hacer, creo que te estas complicando mucho...

Es mas simple hacer:
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <errno.h>
  4.  
  5. int main()
  6. {
  7.   char *fields[9] = {  "Codigo     :","Nombre     :","Apellido   :",
  8.                        "Direcion   :","Telefono   :","E-mail     :",
  9.                        "Edad       :","Sexo       :","Nacimiento :" };
  10.   FILE *fp;
  11.   char linea[250];
  12.   char *token;
  13.   int nc;
  14.  
  15.  
  16.   if ((fp = fopen("C:\\Clientes.txt", "r")) == NULL) {
  17.     perror("Error");
  18.     getchar();
  19.     return 1;
  20.   }
  21.  
  22.   while(!feof(fp)) {
  23.     fgets(linea, 255, fp);
  24.     nc = 0;
  25.     token = strtok(linea, "|");
  26.     printf("%s %s\n",fields[nc++], token);
  27.     while((token = strtok(NULL, "|")) != NULL)
  28.       printf("%s %s\n", fields[nc++], token);
  29.   }
  30.   fclose(fp);
  31.   getchar();
  32. }

Saludos

Última edición por ecfisa; 22/08/2013 a las 21:55
  #3 (permalink)  
Antiguo 23/08/2013, 02:00
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Ficheros C++

Por cierto, eso es C y no C++.
  #4 (permalink)  
Antiguo 05/09/2013, 23:31
 
Fecha de Ingreso: septiembre-2013
Mensajes: 5
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Ficheros C++

Concuerdo con amchakon eso es c si fuese c++ se te simplificaria muchisimo mas
  #5 (permalink)  
Antiguo 09/09/2013, 21:42
 
Fecha de Ingreso: agosto-2013
Mensajes: 2
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Ficheros C++

Agradesco la ayuda, y en serio hermano lo has echo mas facil de lo que estaba en mi codigo inutil... perdon sino habia contestado antes pero no tengo muchas posibilidades de conectarme a la internet, tambien les agradezco por las correcciones en decirme que no es C++ sino que C....

Gracias, saludos

Wanchankeita

Etiquetas: c++, ficheros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:35.