bonsoir,
je cherche à écrire un objet dans un TFileStream ou un TMemoryStream.
J'utilise donc les methodes write pour écrire et read pour relire.
Voila mon code pour écrire :
et pour relire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 TFileStream *FS = new TFileStream("c:\\test0.dat", fmCreate); int size = sizeof(MonObjet); FS->Write(MonObjet, size); delete FS;
ce code se compile et s'execute sans aucun problème, si ce n'est que je ne récupère pas MonObjet dans l'état ou je l'ai enregistré
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 TMaClass *MonObjet = new TMaClass; TFileStream *FS = new TFileStream("c:\\test0.dat", fmOpenRead); int size = FS->Size; FS->Read(MonObjet, size); delete FS;Il me manque une grande partie des variables initialement présente dans MonObjet avant la sauvegarde ....
J'ai l'impression que le pb vient de
qui ne corresponderait à la taille réelle de mon objet ......
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int size = sizeof(MonObjet);
Quelle erreur je fais et comment corriger ça ?
Merci
EDIT : pour info, si je créé une structure avec exactement les même variables que celles contenues dans ma TMaClass, je peux sauvegarder et restaurer cette structure sans aucun problème avec le code ci-dessus
Partager