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 originalvoid Borrar(void){
FILE *fp,*fd;
Datos aux;
int encontrado=0;
char cadena[25];
printf("Introduce el nombre del Articulo a borrar: "); fp=abrir_fichero_b(factura,0);
if(!(fp)){
printf("\n Error de apuertura del archivo factura.txt \n");} else{
fd=abrir_fichero_b("auxiliar.$$$",1);
if(!(fd)){
printf("\n Error Imposible crear archivo auxiliar.$$$ \n");} else{
while ((fread(&aux
, sizeof(aux
), 1, fp
))!=0) if(stricmp(aux.nomart1,cadena)!=0)
fwrite(&aux
, sizeof(aux
), 1, fd
); else if(stricmp(aux.nomart2,cadena)!=0)
fwrite(&aux
, sizeof(aux
), 1, fd
); else if(stricmp(aux.nomart3,cadena)!=0)
fwrite(&aux
, sizeof(aux
), 1, fd
); else if(stricmp(aux.nomart4,cadena)!=0)
fwrite(&aux
, sizeof(aux
), 1, fd
); else if(stricmp(aux.nomart5,cadena)!=0)
fwrite(&aux
, sizeof(aux
), 1, fd
); else if(stricmp(aux.nomart6,cadena)!=0)
fwrite(&aux
, sizeof(aux
), 1, fd
); else if(stricmp(aux.nomart7,cadena)!=0)
fwrite(&aux
, sizeof(aux
), 1, fd
); else if(stricmp(aux.nomart8,cadena)!=0)
fwrite(&aux
, sizeof(aux
), 1, fd
); else if(stricmp(aux.nomart9,cadena)!=0)
fwrite(&aux
, sizeof(aux
), 1, fd
); else if(stricmp(aux.nomart10,cadena)!=0)
fwrite(&aux
, sizeof(aux
), 1, fd
);
else
encontrado=1;
}
if(encontrado){
system("ren auxiliar.$$$ factura.txt"); printf("\n Articulo borrado con exito \n"); }
else{
printf("\n El articulo NO SE ENCONTRO, por lo tanto no fue borrado!!!"); }
}
}