• Miércoles 6 de Noviembre de 2024, 00:25

Autor Tema:  Problema Con Strcmp  (Leído 995 veces)

danijr78

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Problema Con Strcmp
« en: Lunes 16 de Enero de 2006, 13:27 »
0
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.

OscarZ

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Problema Con Strcmp
« Respuesta #1 en: Miércoles 15 de Febrero de 2006, 19:55 »
0
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