IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VC++ .NET Discussion :

Sauvegarde d' objet


Sujet :

VC++ .NET

  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Par défaut 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

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    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

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Par défaut
    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

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414

  5. #5
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Par défaut
    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:rawing::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

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    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

  7. #7
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Par défaut
    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

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    tu n'as pas oublié de XmlInclude pour les classes qu'il ne connaitrait pas ?

  9. #9
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Par défaut
    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
    Fichiers attachés Fichiers attachés

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    pas de problème de sérialisation semble-t-il après avoir commenté les deux lignes qui faisaient des erreurs de compilation, à savoir
    car s n'étant pas déclaré

  11. #11
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 14
    Dernier message: 24/07/2006, 12h09
  2. [POO] sauvegarde d'objets et perte des methodes
    Par Matth_S dans le forum Langage
    Réponses: 3
    Dernier message: 23/12/2005, 15h47
  3. sauvegarder un objet au format .x
    Par sylvain_bos dans le forum DirectX
    Réponses: 3
    Dernier message: 19/08/2004, 23h05
  4. [arbre] Sauvegarder un objet dans un fichier
    Par Guigui_ dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 00h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo