Pregunta: | 194 - GUARDAR DATOS Y OBJETOS EN DISCO DURO |
Autor: | Weimar |
Estoy programando en borland c++. Necesito saber cual es la manera mas facil pero efectiva de guardar datos y objetos en disco duro. Los objetos son nodos de una lista (una nómina de empleados) doblemente enlazada. Tengo una clase empleado, que es la encargada de llenar los nodos con los datos de todos los empleados y tengo una clase lista que la declaré como clase amiga de la clase empleado. La información (los nodos) son los que se deben guardar en disco duro. Cuando yo abro el programa nomina, la lista debe estar vacía y debe comenzar a recoger la información del disco, y cuando salgo del programa debe guardar nuevamente la información en el disco duro. La lista debe ordenarse por numeros de identificacion y los empleados se podrán buscar por número de identificación, por apellidos, nombre, cargo en la empresa, o, por área de trabajo. Gracias al que me responda de antemano. |
Respuesta: | A. Lopez |
mira aqui tienes un ejemplo de , como guardar estructuras en disco, este es un fragmento de un programa, que hize para un video club.FILE Pelicula *Cinta=NULL; Cinta=*Primero; while(Cinta){ fwrite(Cinta,sizeofPelicula),1,*Archivo); Cinta=Cinta->Siguiente; } Arhivo: es un puntero FILE pero antes de hacer estu debes crear el archivo, y comprobar si gubo o no algun error, en caso de que si hubiere, no denes ejecutar esta parte. si tienes alguna otra duda sobre esto, escribeme, y haber si te puedo ayudar. |
Respuesta: | Alex |
Mira el siguiente ejemplo lo hice para un sistema de reserva de pasajes de un aeropuerto está en C puro pero es lo mismo: Alex typedef struct _tpasviaasi{ long nropasap; char *nombre; }tpasviaasi; typedef struct _tviaje{ tpasesp *TopeDiccPasEsp; tpasesp *pasesp; int TopeDiccPasViaAsi; tpasviaasi *pasviaasi[MAXASIENTOS]; tpasvianom *pasvianom; }tviaje; typedef struct _tvuelo{ char *codcomp; int nrovuelo; int dia; char *aersal; char *aerlleg; int hsalida; int duracion; int cantasi; long precio; tviaje *viajes[CANTSEMANAS]; }tvuelo; typedef struct _tcompania{ char *codigo; char *nombre; int TopeDiccVuelos; tvuelo *vuelos[MAXVUELOS]; struct _tcompania *prox; }tcompania; // PARA GRABAR // #include "grabocmp.h" int GuardarCompanias(tcompania *compania) { int i,x,a; FILE *archcompania,*archvuelos,*archviajes,*archespera,*archasientos; tcompania *compania_aux; tvuelo *vuelo_aux; tviaje *viaje_aux; compania_aux=compania; AbrirArch(&archcompania,"compania.dat","w+"); AbrirArch(&archvuelos,"vuelos.dat","w+"); AbrirArch(&archviajes,"viajes.dat","w+"); AbrirArch(&archespera,"esperas.dat","w+"); AbrirArch(&archasientos,"asientos.dat","w+"); while (compania_aux) { fprintf(archcompania,"%s %s\n",compania_aux->codigo,comp |
Respuesta: | Pablo Ronse |
Mira la ayuda del método Serialize que viene con las listas. Un saludo |