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

Como eliminar la basura que me carga al copiar una string de un archivo txt

Estas en el tema de Como eliminar la basura que me carga al copiar una string de un archivo txt en el foro de C/C++ en Foros del Web. HOLA!!!! TENGO UN PEQUEÑO PROBLEMA QUE ME ESTA MATANDO, EN UN PROGRAMA QUE TENGO QUE PRESENTAR TENGO QUE LEER UNA BASE DE DATOS QUE ESTA ...
  #1 (permalink)  
Antiguo 17/12/2008, 13:44
 
Fecha de Ingreso: diciembre-2008
Ubicación: Guatemala.originario de S.M
Mensajes: 4
Antigüedad: 15 años, 4 meses
Puntos: 0
Como eliminar la basura que me carga al copiar una string de un archivo txt

HOLA!!!! TENGO UN PEQUEÑO PROBLEMA QUE ME ESTA MATANDO, EN UN PROGRAMA QUE TENGO QUE PRESENTAR TENGO QUE LEER UNA BASE DE DATOS QUE ESTA GUARDADA EN UN ARCHIVO TXT, EL CUAL LOGRO LEER PERFECTAMENTEMENTE (BUENO CREO QUE NO TAN PERFECTO PORQUE DE AHI PROVIENE EL PROBLEMA), EL PROBLEMA ES QUE CUANDO LEO EL ARCHIVO Y LO GUARDO EN LA ESTRUCTURA, ME ALMACENA POR ASI DECIRLO BASURA LO CUAL ME PROVOCA ERROR EN LOS DATOS GUARDADOS, EN DONDE SE DA EL PROBLEMA ES EN EL CARNE, YA QUE GUARDA EL NUMERO DE CARNE Y TAMBIEN ME ALMACENA EL NOMBRE DE EL ESTUDIANTE QUE SE ENCUENTRA EN LA LINIEA DE ABAJO, LES DEJO MI PEQUEÑO PROGRAMA PARA VER SI ALGUIEN ENCUENTRA MI ERRO DE ANTE MANO MUCHAS GRACIAS.

ESTA ES LA FORMA DE COMO SE ENCUENTRA ALMACENADO EL ARCHIVO TXT.
2000-18204,Jorge Alberto,Aragón Gómez;
2000-10575, Melvin Orlando, morales Fajardo;
2001-13331, Marco Antonio, Martínez Gómez;
2001-13488, Gabriel Eduardo, Montufar Noriega;
2001-17676, Immer Othoniel, Collado Gonzalez;
2002-12102, Luis Alejandro, lira Loarca;


ESTA ES MI ESTRUCTURA

struct usuario
{
char nombre[30];
char apellido[30];
carne [9];
}; usuario alumno[100];

AQUI LEEO EL ARVHIVO
void leerarchivo()
{
int x,y;
char*TNK;
char linea[128];
FILE*datos;
datos=fopen("Alumnos.txt","r")
x=0;

while(feof(datos)==0)
{
fgets(linea,128,datos);
TNK= strtok(linea,",");
strcpy(alumno[x].carne,TNK);
y=0;

while((TNK=strtok(NULL,",;"))!=NULL)
{
if(y==0)
{strcpy(alumno[x].nombre,TNK);}

if(y==1)
{strcpy(alumno[x].apellido,TNK);}

y=y+1;
}

x=x+1
}
fclose(datos);
}

gracias por dignarse a leer esperare RESPUESTA!!!!
  #2 (permalink)  
Antiguo 18/12/2008, 00:27
 
Fecha de Ingreso: diciembre-2008
Ubicación: Guatemala.originario de S.M
Mensajes: 4
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Como eliminar la basura que me carga al copiar una string de un archivo tx

Que tal a todos!!!!!!!, creo que ya encontre la solucion al problema que tenia. Dejo la solucion por si hay alguien que le ocurra lo mismo.

Cuando se trabaje con caracteres como vectores se debe tener en cuenta el tamaÑo del vector que no es lo mismo que las posiciones por ejemplo.
Marquense---------> lo conforman 9 espacios y tiene 8 posiciones. (espero me entiendan) la solucion es que al declarar un caracter asegurense de tener ecupados todas los espacios, y finalizar el vector con "\0", ya que de lo contario les guarda datos aleatorios. En mi caso le asignaba un valor de char carne[9], cuando le tenia que asignar un valor de char [11]... Bueno espero que les sirva de algo porque a mi sÍ...........y aparte no me dejaba dormir exitos en todo lo que hagan y recuerden las palabras de <<<henry ford>>>
¡¡¡¡ no hay hombre viviente que no pueda hacer mÁs, de lo que piense que puede !!!!
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 10:02.