La Web del Programador: Comunidad de Programadores
 
    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