Bonjour,
Je voudrais savoir comment orienter la sérialisation d'un objet dans un fichier.
D'autre part l'instruction ci-dessous, ne fonctionne pas, auriez vous une autre solution :
unsigned __int64 var1
ar << var1
Merci,
Christophe,
Bonjour,
Je voudrais savoir comment orienter la sérialisation d'un objet dans un fichier.
D'autre part l'instruction ci-dessous, ne fonctionne pas, auriez vous une autre solution :
unsigned __int64 var1
ar << var1
Merci,
Christophe,
Salut,
tu trouveras peut-etre la solution à tes questions ici :
http://c.developpez.com/faq/vc/?page...HowToSerialize
Pour l'écriture et la lecture, une manière possible de sérialiser:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 //Création d'un objet CFile CFile File; //ouverture du fichier en mode écriture if(File.Open("MyArchive.arc", CFile::modeCreate | CFile::modeWrite )) { //Création d'un objet CArchive associé au CFile CArchive ar( &File, CArchive::store); //serialisation de l'objet m_Object.Serialize(ar); }
où m_object est un objet de CClass (dérivée de CObject)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 //Création d'un objet CFile CFile File; //ouverture du fichier en mode lecture if(File.Open("MyArchive.arc", CFile::modeRead )) { //Création d'un objet CArchive associé au CFile CArchive ar( &File, CArchive::load); //serialisation de l'objet m_Object.Serialize(ar); }
et la méthode Serialize de CClass donnerait qqch du genre:
dans le cas où tes variables membres sont primitives et donc où tu peux utiliser les >> (lecture) et << (écriture).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 void CClass::Serialize(CArchive &ar) { CObject::Serialize(ar); if (ar.IsStoring()) { ar << var_membre1 << var_membre2 << var_membre3; } else { ar >> var_membre1 >> var_membre2 >> var_membre3; } }
Sinon, si les << et >> ne s'appliquent pas, essaye de voir les méthodes Write et Read de CArchive...
Partager