Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/08/2011, 21:00
Avatar de baker1562
baker1562
 
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 10 meses
Puntos: 9
Pregunta Borrar elemento en archivo binario

Hola, buenas, quisiera que me echaran una mano con esto, hice un programa donde guardo 5 nombres y los exporto a un archivo binario de nombre "socios.dat" y cree otro programa para leer los nombres

Programa para guardar nombres


Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstdlib>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     char nombres[5][25];
  10.     int i=0;
  11.    
  12.     ofstream Nombres("Socios.dat", ios::app|ios::binary);
  13.    
  14.     while(i<5)
  15.     {
  16.               cout<<"Ingrese el nombre #"<<i<<":"<<endl;
  17.               cin>>nombres[i];
  18.              
  19.               Nombres.write((char*)&nombres[i], sizeof(nombres[1]));
  20.               i++;
  21.               }
  22.     return 0;
  23. }


Programa para leer nombres y modificar cualquier posicion

Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstdlib>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     char nombres[5][25];
  10.     int i=0;
  11.     int socio;
  12.    
  13.     fstream Nombres("Socios.dat", ios::in|ios::out|ios::binary);
  14.    
  15.     while(i<5)
  16.     {
  17.              
  18.               Nombres.read((char*)&nombres[i], sizeof(nombres[1]));
  19.               i++;
  20.               }
  21.     for(int i=0;i<5;i++)
  22.     {
  23.             cout<<"Nombre "<<i<<" : "<<nombres[i]<<endl;
  24.             }
  25.            
  26.     cout<<"Digite un socio"<<endl;
  27.     cin>>socio;
  28.    
  29.     Nombres.seekp(socio*sizeof(nombres[socio]), ios::beg);
  30.    
  31.     cout<<"Digite el reempalzo"<<endl;
  32.     cin>>nombres[socio];
  33.    
  34.     Nombres.write((char*)&nombres[socio], sizeof(nombres[1]));        
  35.    
  36.             system("pause");
  37.     return 0;
  38. }

mi duda esta aqui, como hago para cuando me pide el numero de socio, borrar el socio del archivo externo y del arreglo, osea que el programa me diga

"digite numero de socio:"
2

socio#2 borrado

cual seria la instruccion para borrar esos datos, de antemano agradezco su valiosa ayuda que de verdad necesito

saludos