The exercise consists of given a TXT
file created with the notebook
that the program read and parse in a variable way, detecting each field of the text file and recognizing them so that they can be used or displayed. My problem is that the while
skips as if the file did not exist but does exist. I thank you for your response
Main:
#include"prototipos.h"
int main()
{
FILE *archtxt;
archtxt= fopen("empleados.txt","r+t");
if(!archtxt)
{
printf(" no se pudo acceder al archivo");
return 1;
}
txt_a_parsear(archtxt);
fclose(archtxt);
return 0;
}
Header :
#include"prototipos.h"
int main()
{
FILE *archtxt;
archtxt= fopen("empleados.txt","r+t");
if(!archtxt)
{
printf(" no se pudo acceder al archivo");
return 1;
}
txt_a_parsear(archtxt);
fclose(archtxt);
return 0;
}
Functions.c :
#include"prototipos.h"
void txt_a_parsear(FILE *txt)
{
t_empleado emp;
char linea[TAM];
fgets(linea,TAM,txt);
while(!feof(txt))
{
parseo_txt_var(linea,&emp);
fgets(linea,TAM,txt);
}
}
void parseo_txt_var(char * linea,t_empleado *emp)
{
char *act = strchr(linea,'\n');
*act='#include"prototipos.h"
int main()
{
FILE *archtxt;
archtxt= fopen("empleados.txt","r+t");
if(!archtxt)
{
printf(" no se pudo acceder al archivo");
return 1;
}
txt_a_parsear(archtxt);
fclose(archtxt);
return 0;
}
';
act=strrchr(linea,'|');
emp->sexo=*(act+1);
*act='#include"prototipos.h"
int main()
{
FILE *archtxt;
archtxt= fopen("empleados.txt","r+t");
if(!archtxt)
{
printf(" no se pudo acceder al archivo");
return 1;
}
txt_a_parsear(archtxt);
fclose(archtxt);
return 0;
}
';
act=strrchr(linea,'|');
sscanf(act+1,"%f",&emp->sueldo);
*act='#include"prototipos.h"
void txt_a_parsear(FILE *txt)
{
t_empleado emp;
char linea[TAM];
fgets(linea,TAM,txt);
while(!feof(txt))
{
parseo_txt_var(linea,&emp);
fgets(linea,TAM,txt);
}
}
void parseo_txt_var(char * linea,t_empleado *emp)
{
char *act = strchr(linea,'\n');
*act='%pre%';
act=strrchr(linea,'|');
emp->sexo=*(act+1);
*act='%pre%';
act=strrchr(linea,'|');
sscanf(act+1,"%f",&emp->sueldo);
*act='%pre%';
act=strrchr(linea,'|');
sscanf(act+1,"%d/%d/%d",&emp->fnac.dia,&emp->fnac.mes,&emp->fnac.ano);
*act='%pre%';
act=strrchr(linea,'|');
strncpy(emp->apyn,act+1,sizeof(emp->apyn));
*act='%pre%';
sscanf(linea,"%d",&emp->dni);
}
';
act=strrchr(linea,'|');
sscanf(act+1,"%d/%d/%d",&emp->fnac.dia,&emp->fnac.mes,&emp->fnac.ano);
*act='%pre%';
act=strrchr(linea,'|');
strncpy(emp->apyn,act+1,sizeof(emp->apyn));
*act='%pre%';
sscanf(linea,"%d",&emp->dni);
}