YAMILDIAZ

VENDEDORARCHIVO

May 23rd, 2024 (edited)
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.86 KB | Source Code | 0 0
  1. #include <cstring>
  2. #include "VendedorArchivo.h"
  3.  
  4. VendedorArchivo::VendedorArchivo(std::string nombreArchivo="vendedores.dat"){
  5.     strcpy(_nombreArchivo, nombreArchivo.c_str());
  6. }
  7.  
  8. Vendedor VendedorArchivo::leerRegistro(int pos){
  9.     Vendedor registro;
  10.     FILE *pFile;
  11.  
  12.     pFile=fopen(_nombreArchivo, "rb");
  13.  
  14.     if(pFile==nullptr){
  15.         return registro;
  16.     }
  17.  
  18.     fseek(pFile, sizeof(Vendedor)* pos, SEEK_SET);
  19.  
  20.     fread(&registro, sizeof(Vendedor), 1, pFile);
  21.  
  22.     fclose(pFile);
  23.  
  24.     return registro;
  25. }
  26.  
  27. int VendedorArchivo::ContarRegistro(){
  28.     FILE *pFile;
  29.     int tam;
  30.  
  31.     pFile=fopen(_nombreArchivo, "rb");
  32.  
  33.     if(pFile==nullptr){
  34.         return 0;
  35.     }
  36.  
  37.     fseek(pFile, 0, SEEK_END);
  38.  
  39.     tam=ftell(pFile)/sizeof(Vendedor);
  40.  
  41.     fclose(pFile);
  42.  
  43.     return tam;
  44. }
  45.  
  46. bool VendedorArchivo::GuardarRegistro(Vendedor registro){
  47.     bool resultado;
  48.     FILE *pFile;
  49.  
  50.     pFile=fopen(_nombreArchivo, "ab");
  51.  
  52.     if(pFile==nullptr){
  53.         return false;
  54.     }
  55.  
  56.     resultado=fwrite(&registro, sizeof (Vendedor), 1, pFile);
  57.  
  58.     fclose(pFile);
  59.     return resultado;
  60. }
  61.  
  62. bool VendedorArchivo::Sobreescribir(int pos, Vendedor reg){
  63.     FILE *pFile;
  64.  
  65.     pFile=fopen(_nombreArchivo, "rb+");
  66.     if(pFile==nullptr){
  67.         return false;
  68.     }
  69.  
  70.     fseek(pFile, sizeof (Vendedor)*pos, SEEK_SET);
  71.  
  72.     bool resultado=fwrite(&reg, sizeof (Vendedor), 1, pFile);
  73.  
  74.     fclose(pFile);
  75.  
  76.     return resultado;
  77. }
  78.  
  79. int VendedorArchivo::BuscarId(int indice){
  80.     Vendedor reg;
  81.     int pos=0;
  82.     FILE *pFile;
  83.  
  84.     pFile=fopen(_nombreArchivo, "rb");
  85.     if(pFile==nullptr){
  86.         return -1;
  87.     }
  88.  
  89.     while(fread(&reg, sizeof(Vendedor), 1, pFile)){
  90.         if(reg.getNroLegajo()==indice){
  91.             fclose(pFile);
  92.             return pos;
  93.         }
  94.         pos++;
  95.     }
  96.  
  97.     fclose(pFile);
  98.     return -1;
  99. }
  100.  
Advertisement
Add Comment
Please, Sign In to add comment