La sérialisation est l'outil VC++ qui permet d'enregistrer toutes les données membres d'une liste chaînée et les récupérer.
void CAuteur:: Serialize (CArchive& Archive)
{
if (Archive.IsStoring() ) // sauvegarde dans un fichier ma liste chaînée
{
Archive<<(LONG)UnInteger;
Archive<<LeNom;
Archive<<LaBibliographie;
}
else // restaure ma liste chaînée
{
Archive>>(LONG&)UnInteger;
Archive>>LeNom;
Archive>>LaBibliographie;
}
}
Après avoir créer mon fichier de sauvegarde dans une autre fonction
BOOL CListeDesAuteurs::SauvegarderLaListe(void)
{
BOOL Succes=FALSE;
CAuteur *pAuteur; int I=0;
CString Fichier("Data\\Save\\LesCitations.cit");
for (int J=0;J<2;J++)
{
I=0;
CFile FSAUVEGARDE (Fichier, CFile :: modeCreate |CFile :: modeWrite);
CArchive AR(&FSAUVEGARDE,CArchive :: store,(4096*50) );
AR<<(LONG)NombreDAuteur;
pAuteur = Premier();
while(I<NombreDAuteur && pAuteur !=NULL)
{
AR << pAuteur; // appelle la fonction serialize
pAuteur=Suivant(); I++;
Succes =TRUE;
}
AR.Close();
FSAUVEGARDE.Close();
}
return Succes;
}// code similaire pour la restauration de la liste
C'est en fait une base de donnée de bas niveau avec ma propre extension de fichier.
Et sous Borland ?