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

eliminar registro duplicado

Estas en el tema de eliminar registro duplicado en el foro de C/C++ en Foros del Web. Tengo el siguiente código que consiste en eliminar un registro repetido, pero por más que lo intento no lo entiendo he buscado en manuales de ...
  #1 (permalink)  
Antiguo 14/04/2010, 04:04
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
eliminar registro duplicado

Tengo el siguiente código que consiste en eliminar un registro repetido, pero por más que lo intento no lo entiendo he buscado en manuales de C, pero no encuentro nada.

Código C:
Ver original
  1. int prueba_duplicada(){ /*Devuelve 0 no duplicada y 1 duplicada*/
  2. FILE *pf;
  3. prueba_paciente p,paux;
  4. long int pos, pos1;
  5. int encontrado=0;
  6.  
  7. if((pf=fopen("prueba_paciente","rb"))==NULL){
  8.   printf("Error al abrir el fichero prueba_paciente.\n");
  9. }
  10. else{
  11.   fread(&p,sizeof(p),1,pf);
  12.   while(!feof(pf)&&!encontrado){
  13.        pos=ftell(pf)-sizeof(p);
  14.        fseek(pf,0,SEEK_SET);
  15.        pos1=0;
  16.        while((pos1 < pos)&&!encontrado){
  17.            fread(&paux,sizeof(paux),1,pf);
  18.                 pos1=ftell(pf);
  19.                 if(strcmp(p.nss,paux.nss)==0)
  20.                      if(strcmp(p.prueba,paux.prueba)==0){
  21.                          encontrado=1;
  22.                      }
  23.        }
  24. fseek(pf,pos+sizeof(p),SEEK_SET);
  25. fread(&p,sizeof(p),1,pf);
  26. }
  27. fclose(pf);
  28. return(encontrado);
  29. }

¿Alguien puede explicarme detalladamente el código sino le es mucha molestia?Estaría muy agradecida. Gracias.
  #2 (permalink)  
Antiguo 14/04/2010, 04:08
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: eliminar registro duplicado

Disculpen, no consiste en eliminar un registro repetido sino si hay un registro duplicado o no.

Etiquetas: duplicado, eliminar, registro
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 21:57.