• Viernes 15 de Noviembre de 2024, 07:59

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - M_eta_L

Páginas: [1]
1
C/C++ / Duda C++ Base De Datos
« en: Miércoles 7 de Julio de 2004, 00:44 »
Hola estoy intentando armar mi primera base de datos escrita en C++ y tengo una consulta , como van a poder ver en el metodo registros puedo inscribir 30 clientes con sus respectivos nombres, direccion, rut, etc. que quedan guardados en el archivo "clientes.txt" , estos datos quedan guardados en sus repectivas variables cliente.nombre , clienteapellidop , etc ademas poseo una funcion de busqueda de clientes por nombre o rut hasta ahi todo funciona bien pero cuando cierro el programa y abro denuevo y quiero buscar a un cliente ya registrado y no me muestra sus datos , el error esta en que al reiniciar el programa me reescribe las variables cliente.nombre , clienteapellidop , etc ,en esto me he quedado pegado su buen rato , alguien me podrian aconsejar algo con respecto a esto , aqui publico el codigo :

Código: Text
  1.  
  2. void apc::registros()    
  3. {
  4.    for(i=0;i<tam;i++)   // tam=30 clientes.
  5.        if(!*cliente[i].nombre)
  6.        break;
  7.        if(i==tam)
  8.        {
  9.            cout<<"Ya tienes 30 usuarios registrados\n";
  10.            getch();
  11.        }
  12.  
  13.    if((fp=fopen("clientes.txt","at"))==NULL)
  14.        {
  15.            cout<<"No se puede abrir el archivo";
  16.        }
  17.  
  18.    setfillstyle(1,0);
  19.    bar(110,110,530,371);
  20.    setcolor(15);
  21.    rectangle(109,109,531,372);
  22.    
  23.    gotoxy(16,9);cout<<"Nombre    : ";
  24.    cin>>cliente[i].nombre;
  25.    gotoxy(16,10.5);cout<<"ApellidoP : ";
  26.    cin>>cliente[i].apellidop;
  27.    gotoxy(16,11.5);cout<<"ApellidoM : ";
  28.    cin>>cliente[i].apellidom;
  29.    gotoxy(16,12.5);cout<<"Direccion : ";
  30.    cin>>cliente[i].direccion;
  31.    gotoxy(16,13.5);cout<<"Comuna    : ";
  32.    cin>>cliente[i].comuna;
  33.    gotoxy(16,14.5);cout<<"Rut       : ";
  34.    cin>>cliente[i].rut;
  35.    gotoxy(16,15.5);cout<<"Vehiculo  : ";
  36.    cin>>cliente[i].vehiculo;
  37.    gotoxy(16,16.5);cout<<"A¤o       : ";
  38.    cin>>cliente[i].amo;
  39.    gotoxy(16,17.5);cout<<"Patente   : ";
  40.    cin>>cliente[i].patente;
  41.  
  42.    if(fwrite(cliente[i].nombre,sizeof(cliente[i].nombre),1,fp)!=1)
  43.    printf("Error al intentar escribir en archivo");
  44.    fwrite(cliente[i].apellidop,sizeof(cliente[i].apellidop),1,fp);
  45.    fwrite(cliente[i].apellidom,sizeof(cliente[i].apellidom),1,fp);
  46.    fwrite(cliente[i].direccion,sizeof(cliente[i].direccion),1,fp);
  47.    fwrite(cliente[i].comuna,sizeof(cliente[i].comuna),1,fp);
  48.    fwrite(cliente[i].rut,sizeof(cliente[i].rut),1,fp);
  49.    fwrite(cliente[i].vehiculo,sizeof(cliente[i].vehiculo),1,fp);
  50.    fwrite(cliente[i].amo,sizeof(cliente[i].amo),1,fp);
  51.    fwrite(cliente[i].patente,sizeof(cliente[i].patente),1,fp);
  52.  
  53.    fclose(fp);
  54.    menu();
  55.    botones();
  56.    mver();
  57.  
  58. }
  59.  
  60. void apc::busca()
  61. {
  62.    cleardevice();
  63.    int b;
  64.    gotoxy(1,1);
  65.    cout<<"Introduzca el nombre del cliente : ";
  66.    cin>>seeker; // variable que guarda el nombre del cliente
  67.  
  68.    for(i=0;i<tam;i++)
  69.   {
  70.   b=strcmp(seeker,cliente[i].rut);
  71.   if (b==0)
  72.   {
  73.   rectangle(109,109,531,372);
  74.   gotoxy(16,9);cout<<"Nombre    : "<<cliente [i].nombre;
  75.   gotoxy(16,10.5);cout<<"ApellidoP : "<<cliente  [i].apellidop;
  76.   gotoxy(16,11.5);cout<<"ApellidoM : "<<cliente[i].apellidom;
  77.   gotoxy(16,12.5);cout<<"Direccion : "<<cliente[i].direccion;
  78.   gotoxy(16,13.5);cout<<"Comuna    : "<<cliente[i].comuna;
  79.   gotoxy(16,14.5);cout<<"Rut       : "<<cliente[i].rut;
  80.   gotoxy(16,15.5);cout<<"Vehiculo  : "<<cliente[i].vehiculo;
  81.   gotoxy(16,16.5);cout<<"A¤o       : "<<cliente[i].amo;
  82.   gotoxy(16,17.5);cout<<"Patente   : "<<cliente[i].patente;
  83.  
  84.   }//cierra if
  85.  
  86.   }//cierra for
  87.  
  88. }
  89.  
  90.  
  91.  

salu2.....

Páginas: [1]