void Eliminacion(){ FILE *miarchivo; FILE *pfaux; int u,o; if((miarchivo=fopen("trabajadores.txt","rb"))==NULL) printf("Error al abrir ficheros"); else { fread(®istro,sizeof(struct P_Nomina),1,miarchivo); printf(" |CEDULA |");printf("\t|NOMBRE|");printf("\t|DIRECCION| ");printf("\t|SUELDO| \n"); while(!feof(miarchivo)) { printf("\n%d.",registro.reg); printf("\t\t%d",registro.cedula); printf("\t\t%s",registro.nombre); printf("\t\t%s",registro.direccion); printf("\t\t%2.f",registro.sueldo); fread(®istro,sizeof(struct P_Nomina),1,miarchivo); } } fclose(miarchivo); printf("\n\nTrabajador que quiere eliminar: "); scanf("%d",&elimina); if((miarchivo=fopen("trabajadores.txt","rb"))==NULL) printf("ERROR AL ABRIR"); else { if((pfaux=fopen("auxiliar.txt","w"))==NULL) printf("ERROR AL ABRIR"); else { fread(®istro, sizeof(struct P_Nomina),1,miarchivo); while(!feof(miarchivo)) { if(registro.reg!=elimina) { fwrite(®istro,sizeof(struct P_Nomina),1,pfaux); } fread(®istro, sizeof(struct P_Nomina),1,miarchivo); } } fclose(pfaux); } fclose(miarchivo); if((miarchivo=fopen("trabajadores.txt","w"))==NULL) printf("Error al abrir"); else { if((pfaux=fopen("auxiliar.txt","rb"))==NULL) printf("Error al abrir"); else { fread(®istro,sizeof(struct P_Nomina),1,pfaux); while(!feof(pfaux)) { fwrite(®istro,sizeof(struct P_Nomina),1,miarchivo); fread(®istro, sizeof(struct P_Nomina),1,pfaux); } } fclose(pfaux); } fclose(miarchivo); system("cls"); printf("Eliminado\n\n"); system("pause"); }
|