Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/11/2012, 00:55
gregm15
 
Fecha de Ingreso: noviembre-2012
Mensajes: 19
Antigüedad: 11 años, 6 meses
Puntos: 0
Metodo Borrar de un Fichero txt

como hago para borrar un registro de un fichero txt?

segun yo con este codigo que hice deberia funcionar, no se cual es mi error
Código C:
Ver original
  1. void Borrar(void){
  2.     FILE *fp,*fd;
  3.    Datos    aux;
  4.    int encontrado=0;
  5.     char cadena[25];
  6.  
  7.    printf("Introduce el nombre del Articulo a borrar: ");
  8.    gets(cadena);
  9.    fp=abrir_fichero_b(factura,0);
  10.    if(!(fp)){
  11.     printf("\n Error de apuertura del archivo factura.txt \n");}
  12.     else{
  13.                fd=abrir_fichero_b("auxiliar.$$$",1);
  14.                if(!(fd)){
  15.          printf("\n Error Imposible crear archivo auxiliar.$$$ \n");}
  16.          else{
  17.               while ((fread(&aux, sizeof(aux), 1, fp))!=0)
  18.             if(stricmp(aux.nomart1,cadena)!=0)
  19.               fwrite(&aux, sizeof(aux), 1, fd);
  20.               else if(stricmp(aux.nomart2,cadena)!=0)
  21.               fwrite(&aux, sizeof(aux), 1, fd);
  22.               else if(stricmp(aux.nomart3,cadena)!=0)
  23.               fwrite(&aux, sizeof(aux), 1, fd);
  24.               else if(stricmp(aux.nomart4,cadena)!=0)
  25.               fwrite(&aux, sizeof(aux), 1, fd);
  26.               else if(stricmp(aux.nomart5,cadena)!=0)
  27.               fwrite(&aux, sizeof(aux), 1, fd);
  28.                else if(stricmp(aux.nomart6,cadena)!=0)
  29.               fwrite(&aux, sizeof(aux), 1, fd);
  30.                else if(stricmp(aux.nomart7,cadena)!=0)
  31.               fwrite(&aux, sizeof(aux), 1, fd);
  32.                else if(stricmp(aux.nomart8,cadena)!=0)
  33.               fwrite(&aux, sizeof(aux), 1, fd);
  34.                else if(stricmp(aux.nomart9,cadena)!=0)
  35.               fwrite(&aux, sizeof(aux), 1, fd);
  36.                else if(stricmp(aux.nomart10,cadena)!=0)
  37.               fwrite(&aux, sizeof(aux), 1, fd);
  38.            
  39.             else
  40.               encontrado=1;
  41.          fclose(fd);
  42.               }
  43.           fclose(fp);
  44.       if(encontrado){
  45.          system("del factura.txt");
  46.          system("ren auxiliar.$$$ factura.txt");
  47.          printf("\n Articulo borrado con exito \n");
  48.       }
  49.       else{
  50.          system("del auxiliar.$$$");
  51.          printf("\n El articulo NO SE ENCONTRO, por lo tanto no fue borrado!!!");
  52.       }
  53.                }
  54. }