/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Registro de Eliminados en C

 
      Índice del Foro elrincondelc.com -> C/C++ en General
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
_Jav



Registrado: 12 Abr 2013
Mensajes: 7

MensajePublicado: 23/04/2013 11:59 am
Título: Registro de Eliminados en C

Buenas tardes ! hoy les escribo para salir de esta duda... estoy modificando por campos un archivo... lo que sucede es que al introducir para modificar la persona 1 (Nombre, dirección dependiendo del que se seleccione) me va de maravilla... pero al presionar la persona 2 borra todo !

Les dejo la función:

edit: RESUELTO !

Tenia un problema con las llaves !


PD: estoy intentando hacer un archivo con los registros que elimine de un archivo en el programa... quisiera trasladar esos registros eliminados a un nuevo archivo para mostrarlos en una función aparte... les coloco la funcion de eliminar:




Código:
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");
}




Saludos y espero alguna ayuda o idea !
Volver arriba
      Índice del Foro elrincondelc.com -> C/C++ en General
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com