#include
#include "VendedorArchivo.h"
VendedorArchivo::VendedorArchivo(std::string nombreArchivo="vendedores.dat"){
strcpy(_nombreArchivo, nombreArchivo.c_str());
}
Vendedor VendedorArchivo::leerRegistro(int pos){
Vendedor registro;
FILE *pFile;
pFile=fopen(_nombreArchivo, "rb");
if(pFile==nullptr){
return registro;
}
fseek(pFile, sizeof(Vendedor)* pos, SEEK_SET);
fread(®istro, sizeof(Vendedor), 1, pFile);
fclose(pFile);
return registro;
}
int VendedorArchivo::ContarRegistro(){
FILE *pFile;
int tam;
pFile=fopen(_nombreArchivo, "rb");
if(pFile==nullptr){
return 0;
}
fseek(pFile, 0, SEEK_END);
tam=ftell(pFile)/sizeof(Vendedor);
fclose(pFile);
return tam;
}
bool VendedorArchivo::GuardarRegistro(Vendedor registro){
bool resultado;
FILE *pFile;
pFile=fopen(_nombreArchivo, "ab");
if(pFile==nullptr){
return false;
}
resultado=fwrite(®istro, sizeof (Vendedor), 1, pFile);
fclose(pFile);
return resultado;
}
bool VendedorArchivo::Sobreescribir(int pos, Vendedor reg){
FILE *pFile;
pFile=fopen(_nombreArchivo, "rb+");
if(pFile==nullptr){
return false;
}
fseek(pFile, sizeof (Vendedor)*pos, SEEK_SET);
bool resultado=fwrite(®, sizeof (Vendedor), 1, pFile);
fclose(pFile);
return resultado;
}
int VendedorArchivo::BuscarId(int indice){
Vendedor reg;
int pos=0;
FILE *pFile;
pFile=fopen(_nombreArchivo, "rb");
if(pFile==nullptr){
return -1;
}
while(fread(®, sizeof(Vendedor), 1, pFile)){
if(reg.getNroLegajo()==indice){
fclose(pFile);
return pos;
}
pos++;
}
fclose(pFile);
return -1;
}