-
Sauvegarde d' objet
Bonjour,
j'ai cr�er un objet que j'appelle model qui contient beaucoup d'autre objets cr�er par mes soins. J'aimerai sauvegarder cet objet sur le disque dur et pouvoir le r�utiliser plutard... Comment faut-t-il s'y prendre ??
En C on utilise la fonction write mais en c++ je suis un peu perdu...
Merci de l'aide
Tom
-
quelle techno utilises-tu ?
MFC, voir la s�rialisation dans la faq VC++
.Net, voir la s�rialisation en xml dans un de mes articles
API win32 ? pas de s�rialisation simple
-
merci nico-pyright,
j'utilise .NET je crois, je cherche du cot� des Objet Filestream etc...
OK je jette un oeil sur ta s�rialisation XML, est ce que �a va me copier mon objet sur mon disque cela ?
Par exemple ma classe s'appelle modCity, et mon objet m, il existe pas un truc du genre write(m), et read(File,Type modCity) ?
Merci bien
Tom
-
-
Merci bien Nico-pyright,
j'ai test� ma s�rialisation, ca fonctionne pas car j'ai une erreur au cour de ma s�rialisation. La serialisation fonctionne bien au d�but, puis s'arr�te soudainement pour une raison inconnue !
Une exception de premi�re chance de type 'System.InvalidOperationException' s'est produite dans System.Xml.dll
Une exception non g�r�e du type 'System.InvalidOperationException' s'est produite dans System.Xml.dll
Dans mon objet, j'ai une image de type System::Drawing::Image, je me dit que c'est peut �tre cet objet qui ne peut �tre s�rialis�, non ? Car la s�rialisation s'arr�te peu avant la s�rialisation de cet objet...
Merci de ton aide
Tom
-
sans code, je ne saurais trop dire ...
mais commence d�j� par enlever la s�rialisation de l'image, et on verra si c'est ca qui plante :D
-
Bon, mauvaise nouvelle ce n'est pas � cause de l'image, j'ai remplac� l'image par un String^ mais peut �tre que le string aussi n'est pas s�rialisable car priv�...
Bref mon code est tr�s simple, j'ai enlev� les exceptions pour le moments:
System::Xml::Serialization::XmlSerializer ^ sr;
sr = gcnew System::Xml::Serialization::XmlSerializer(ModelCity::typeid);
System::IO::StreamWriter ^ writer = gcnew System::IO::StreamWriter("c:\\fichier.xml");
sr->Serialize(writer, modCity);
Mes classes sont bien du type public ref et j'ai bien rajouter la ligne [Serializable] dans l'ent�te de ModelCity.h
Est-ce que �a t'en dis plus ? Merci Nico-Pyright tu es d'une aide bien pr�cieuse !
Tom
-
tu n'as pas oubli� de XmlInclude pour les classes qu'il ne connaitrait pas ?
-
1 pi�ce(s) jointe(s)
Salut, tu crois que je peux envoyer mon projet ? Je ne comprend pas ce que tu veux dire par XmlInclude, j'ai bien regard� ton tuto mais je ne comprend pas.
Si j'avai oubli� un XmlInclude, j'aurai une erreur � la compilation de toute fa�on non ? Ou je n'aurai m�me pas un d�but de s�rialisation. Car il me copie bien un membre entier de mon objet et s'arr�te dans la copie du deux�me au milieu. La taille de mon ficher Xml fait toujours 12Ko. J'ai l'impression que c'est une erreur de buffer sans en �tre bien s�r.
Merci bien
Tom
-
pas de probl�me de s�rialisation semble-t-il apr�s avoir comment� les deux lignes qui faisaient des erreurs de compilation, � savoir
Code:
s = gcnew String("");
car s n'�tant pas d�clar�
-
Oui !!!!!!!!! ca fonctionne !!! Merci, erreur de d�butant que je suis ! D�sol� ca fait 3 jours que j'ai commenc�, alors j'ai un peu de mal !!!
Ca fonctionne bien, merci de ton aide nico-pyright et comme �a on aura appris qu'une image n'est pas de base serialisable !!!
@+
Tom