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

eliminar dato archivo binario

Estas en el tema de eliminar dato archivo binario en el foro de C/C++ en Foros del Web. en este codigo de archivo binario , donde esta funcion lo que hace es eliminar, que es lo que sucede, se copia todo el contenido ...
  #1 (permalink)  
Antiguo 04/06/2012, 17:46
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 11 meses
Puntos: 5
eliminar dato archivo binario

en este codigo de archivo binario , donde esta funcion lo que hace es eliminar, que es lo que sucede, se copia todo el contenido a otro archivo , para luego hacer las modificaciones, de eliminar una estructura seleccionada , que es este caso , se realizo un busqueda y la especificada es eliminada, entonces, luego de hacer las modificacion, se copia del archivo temporal al original.. eso es lo que sucede,,,????

Código PHP:
void Borrar(void){
   
FILE *fp,*fd;
   
Amigo    aux;
   
int encontrado=0;
    
char cadena[25];

   
printf("Introduce el nombre del Amigo a borrar: ");
   
gets(cadena);

   
printf("n BORRANDO REGISTROS  n");
   
fp=abrir_fichero_b(nombre_fichero,0);
   if(!(
fp))
       
printf("n Error de apuertura del archivo agenda.datn");
   else{
        
fd=abrir_fichero_b("paso.$$$",1);
      if(!(
fd))
         
printf("n Error Imposible crear archivo auxiliarn");
      else{
         while ((
fread(&auxsizeof(aux), 1fp))!=0)
            if(
stricmp(aux.nom,cadena)!=0)
              
fwrite(&auxsizeof(aux), 1fd);
            else
              
encontrado=1;
         
fclose(fd);
      }
      
fclose(fp);
      if(
encontrado){
         
system("del agenda.dat");
         
system("ren paso.$$$ agenda.dat");
         
printf("n Registro BORRADO con Exito!!!n");
      }
      else{
         
system("del paso.$$$");
         
printf("n El Registro NO SE ENCONTRO, no fue borrado!!!");
      }
   }
}

/****************************************** 
  #2 (permalink)  
Antiguo 04/06/2012, 18:08
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 11 meses
Puntos: 5
Respuesta: eliminar dato archivo binario

TOdo el contenido del archivo original se copia???
o solamente el dato a eliminar...??
  #3 (permalink)  
Antiguo 05/06/2012, 01:37
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: eliminar dato archivo binario

Hola! se copio todo el contenido del archivo original al archivo auxiliar,exepto la estructura donde se encuentra el nombre del amigo a eliminar

Si se encontro el nombre del amigo sucede esto
Código C:
Ver original
  1. if(encontrado){
  2.          system("del agenda.dat");
  3.          system("ren paso.$$$ agenda.dat");
  4.          printf("n Registro BORRADO con Exito!!!n");
En el primer system se borra agenda.dat y en el segundo system se renombra el archivo auxiliar "paso.$$$" a "agenda.dat"... Igual los comandos del y ren, la verdad los deduje porque nose en q SO funciona eso

Para mi gusta esta forma de borrar es malisimo. Saludos
  #4 (permalink)  
Antiguo 05/06/2012, 10:31
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 11 meses
Puntos: 5
Respuesta: eliminar dato archivo binario

que otra forma de eliminar,, esta mejor ?=?


esto es el archivo temporal no ??? "paso.$$$" lo raro es que no se crea... temporalmente, le cambie la extension por dat , y si se crea, y luego se borra. por ser temporal...
  #5 (permalink)  
Antiguo 05/06/2012, 13:00
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: eliminar dato archivo binario

Lo de la extension depende donde estas compilando... Exagere un poco con lo de malisimo, pero lo de eliminar lo podes hacer igual como se manejan listas

Saludos

Etiquetas: binario, dato, funcion, int, struct, cadenas
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 23:04.