SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: danijr78 en Lunes 16 de Enero de 2006, 13:27
-
Tengo un problema al ejecutar este codigo. Creo que se produce en el STRCMP pero soy muyyyy novato...
int ValidarNombreNoRep(Nombre_Act nom) // char[50]
{
FILE * FAct;
Reg_Actividad RA; //registro con un campo Nombre_Act=char[50]
if((FAct=fopen("activi.dat","rb"))==NULL)
{
printf ("No se pudo abrir activi.dat");
//exit(-1);
}
while(fread(&RA,sizeof(RA),1,FAct))
if(strcmp(RA.Nombre_Actividad,nom)==0) return 0;
fclose(FAct);
return 1;
}
Unhandled exception <exe> Access Violation...
->00401672 cmp al,byte ptr [ecx]
Por favor es urgente alguna ayuda?
Gracias.
-
Hola, el problema no creo que sea el strcomp.
No puedes usar fread para determinar el final del archivo. Ahi te muestra una forma de leer datos de un archivo.
FILE * pFile;
long lSize;
long nReg;
pFile = fopen ( "datos.me" , "rb" );
if (pFile==NULL) exit (1);
// ubicas el ultimo registro
fseek (pFile , 0 , SEEK_END);
lSize = ftell (pFile); // obtienes cuantos bytes hay en el archivo
nReg = lSize/sizeof(miReg) // cantidad de registros
rewind (pFile); // vuelves al inicio del archivo
for ( int i=0 ; i<nReg ; i++) //bucle usando lSize
En el bucle lees cada registro y lo comparas