#include "EstructuraABC.hpp" /// Visualiza el contenido del registro solicitado int EstructuraABC::visualiza(int pos) { if (pos >= 0 && pos < lista.size()) { It = lista.begin(); advance (It, pos); Registro *a = *It; a->visualizaRegistro(); return 0; // OK } return 1; // Error } /// Visualiza todo el contenido de la lista int EstructuraABC::visualizaTodos(void) { for (It = lista.begin(); It != lista.end(); ++It) { Registro *a = *It; a->visualizaRegistro(); } return 0; // Ok } /// Visualiza el registro de la lista solicitado int EstructuraABC::borrar(int pos) { if (pos >= 0 && pos < lista.size()) { It = lista.begin(); advance (It, pos); Registro *a = *It; delete a; It = lista.erase (It); } return 2; // Error } /// Modifica el registro de la lista solicitado int EstructuraABC::modificar(int pos) { if (pos >= 0 && pos < lista.size()) { It = lista.begin(); advance (It, pos); Registro *a = *It; a->modificarRegistro(); return 0; // Ok } return 3; // Error } /// Leer una lista de disco int EstructuraABC::leer(const char *file) { int n = 0; borrarTodo(); FILE *pFile; pFile = fopen(file,"r"); if(pFile != NULL) { while (!feof(pFile)) { leerAdiciona(pFile); n++; } printf ("\nRegistros leidos: %d\n", n-1); fclose (pFile); return 0; // Ok } return 4; // Error } /// Grabar una lista en disco int EstructuraABC::grabar(const char *file) { int n = 1; FILE *pFile; pFile = fopen(file,"w"); if(pFile != NULL) { for (It = lista.begin(); It != lista.end(); ++It) { Registro *a = *It; a->grabarRegistro(pFile); n++; } fclose (pFile); printf ("\nRegistros grabados: %d\n", n-1); return 0; // Ok } return 5; // Error }