Alguien puede explicar que pasa ... ???
Publicado por Jose (3 intervenciones) el 22/06/2004 18:56:52
Hola, tengo el siguiente codigo para llenar una matriz a partir de un archivo.
void llenamatriz(void)
{
// Declaracion de Variables
int ren=0; // Para control de la matriz
limpiamatriz();
if((TS_INI = fopen("TS_INI.TXT","r")) == NULL) //controla la apertura del archivo en modo de solo lectura
{ //si no existe o se tiene problemas para abrir manda el mensaje y termina.
clrscr(); //solo este procedimiento.
printf("\n Hay problemas para abrir la Tabla de Simbolos.");
fflush(stdin);
getch();
clrscr();
return;
}
else
{
TS_INI=fopen("TS_INI.TXT","r");
while(!feof(TS_INI)) //si el archivo se puede abrir se lee y se asignan los valores en la matriz
{
fscanf(TS_INI,"%s",ct);
fscanf(TS_INI,"%s",tt);
fscanf(TS_INI,"%s",td);
fscanf(TS_INI,"%s",id);
fscanf(TS_INI,"%s",le);
if (renglon!="") // si no hay mas informacion en el archivo termina
{
strcpy(matriz[ren].CT,ct);
strcpy(matriz[ren].TT,tt);
strcpy(matriz[ren].TD,td);
strcpy(matriz[ren].ID,id);
strcpy(matriz[ren].LE,le);
ren++;
}
else
return;
}
fclose(TS_INI);
}
}
y funciona, llena la matriz por ejemplo con la siguiente informacion
matriz({"001","PR","0","hola","hola"},{"","","","",""}, ....
hasta ahi va todo bien
pero si en el archivo encuentra en el ultimo campo por ejemplo "Hola como estas" solo lee hasta el espacio en blanco y el resto no, lo he intentado con fscanf y fread, he intentadi abrir el archivo como binario con "rb" pero aun asi no lee el resto ¿que pasa ? ¿como puedo solucionarlo o que estoy haciendo mal.?
De antemano muchas gracias
void llenamatriz(void)
{
// Declaracion de Variables
int ren=0; // Para control de la matriz
limpiamatriz();
if((TS_INI = fopen("TS_INI.TXT","r")) == NULL) //controla la apertura del archivo en modo de solo lectura
{ //si no existe o se tiene problemas para abrir manda el mensaje y termina.
clrscr(); //solo este procedimiento.
printf("\n Hay problemas para abrir la Tabla de Simbolos.");
fflush(stdin);
getch();
clrscr();
return;
}
else
{
TS_INI=fopen("TS_INI.TXT","r");
while(!feof(TS_INI)) //si el archivo se puede abrir se lee y se asignan los valores en la matriz
{
fscanf(TS_INI,"%s",ct);
fscanf(TS_INI,"%s",tt);
fscanf(TS_INI,"%s",td);
fscanf(TS_INI,"%s",id);
fscanf(TS_INI,"%s",le);
if (renglon!="") // si no hay mas informacion en el archivo termina
{
strcpy(matriz[ren].CT,ct);
strcpy(matriz[ren].TT,tt);
strcpy(matriz[ren].TD,td);
strcpy(matriz[ren].ID,id);
strcpy(matriz[ren].LE,le);
ren++;
}
else
return;
}
fclose(TS_INI);
}
}
y funciona, llena la matriz por ejemplo con la siguiente informacion
matriz({"001","PR","0","hola","hola"},{"","","","",""}, ....
hasta ahi va todo bien
pero si en el archivo encuentra en el ultimo campo por ejemplo "Hola como estas" solo lee hasta el espacio en blanco y el resto no, lo he intentado con fscanf y fread, he intentadi abrir el archivo como binario con "rb" pero aun asi no lee el resto ¿que pasa ? ¿como puedo solucionarlo o que estoy haciendo mal.?
De antemano muchas gracias
Valora esta pregunta


0