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

MFC Discussion :

[MFC] Serialisation - sauver plusieurs fois un meme objet


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 29
    Par défaut [MFC] Serialisation - sauver plusieurs fois un meme objet
    Grosse panique à bord... J'avais prévu d'utiliser la sérialisation fournie par les MFC pour mon appli et là il me semble que ce n'est pas possible !!! Au secour !!!
    En fait, je souhaite souver au cours du temps les évolution d'un objet dans un fichier (Carchive lié à un CFile). Or cet objet est complexe (contient d'autres objets eux meme contenant...).

    En gros je souhaitai faire pendant le deroulement de mon appli:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CArchive ar(&file, CArchive::store);
    monObjet.Serialize(ar) ;
    // ... modifs apportées à monObjet
    monObjet.Serialize(ar) ;
    // ... modifs apportées à monObjet
    monObjet.Serialize(ar) ;
    ... et ainsi de suite
    Dans ma tete, ca me permettait de stocker les évolutions de "monObjet". Le probleme dont je viens de me rendre compte est qu'il semble que si un objet donné (à une adresse donnée donc) est enregistré une fois, les appels successifs à "Serialize()" ne vont pas réécrire l'objet, mais seulement faire référence à son adresse dans le fichier !!! Ainsi, lorsque je charge à nouveau mes objets de la sorte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CArchive ar(&file, CArchive::load);
    monObjet.Serialize(ar) ;
    monObjet.affiche();
    monObjet.Serialize(ar) ;
    monObjet.affiche();
    monObjet.Serialize(ar) ;
    monObjet.affiche();
    et bien tous les affichages sont les meme !!! Et correspondent à l'objet initial avant toutes les modifications apportées dessus
    Y'a t'il un moyen de faire un reset et de forcer la ré-écriture des données ou alors est-ce que je suis vraiment dans la m@@@@@ ?

  2. #2
    mat.M
    Invité(e)
    Par défaut
    S'assurer l'instance de CFile qui manipule CArchive soit bien fermé par Close à chaque fois

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 29
    Par défaut
    Merci de ta réponse mat.M, mais je ne vois pas ce que ca changerai... Il me semble que la prochaine fois que j'ouvrirai un CArchive sur le fichier, il recommencerai au début en écrasant mes données précédantes, non ?
    J'avais essayé dans le meme esprit de faire un flush() sur le CArchive mais ca ne change rien...
    J'ai l'impression que les CArchive sont destiné uniquement à stocker une image de la mémoire en un instant donné et non à faire ce que je voulais (enregistrer les modifs d'un seul objet, mais au cours du temps)...
    Ceci etant, je ne pourrai tester que demain, là je suis chez moi... Je voius tiens au courant

Discussions similaires

  1. [FLASH 8] Afficher plusieurs fois le même clip
    Par Devil Shark dans le forum Flash
    Réponses: 16
    Dernier message: 27/02/2007, 08h07
  2. [C#][Débutant] Comment empecher d ouvrir plusieurs fois la meme fenetre
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 21
    Dernier message: 27/04/2006, 13h41
  3. Imprimer plusieur fois la meme page d'un etat
    Par Renardo dans le forum Access
    Réponses: 2
    Dernier message: 22/04/2006, 17h14
  4. Formulaire regroupant plusieur fois le meme sous-formulaire?
    Par Goldenduck4000 dans le forum Access
    Réponses: 2
    Dernier message: 18/04/2006, 15h57
  5. Réponses: 11
    Dernier message: 02/02/2005, 12h52

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