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

Windows Discussion :

SOS Serialisation (HELP)


Sujet :

Windows

  1. #1
    Membre confirmé Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Par défaut SOS Serialisation (HELP)
    Bonjour,

    j'ai serieusement besoin de l'aide de quelqu'un qui sait serialiser sous Visual 6.0 !!
    ça fait depuis le debut de mes revisions que j'essaie , avec CObject, Implement marchin gna gna....
    Si vous voulez m'aider (et ô combien je vous serais reconnaissante), je vous envoie mon prog ( tout bebete et pas difficile à comprendre ), ou on peut voir par msn aussi. Comme vous voulez, pourvu que j'y arrive !

    enfin voila tout, heureusement que ce forum existe

    voila vous pouvez m'envoyer un mail sur avison_scarlatti@yahoo.fr

    Cordialement,
    une étudiante.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Par défaut
    Difficile de t'aider avec aussi peu d'éléments.

    Essaie de faire état d'où tu en es et de poser des questions précises.

  3. #3
    Membre confirmé Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Par défaut
    Voici mon prog ;

    C'est un SDI.
    Cela consiste à entrer des participants pour un voyage.
    Dans mon menu j'ai ajouté Nouveau Voyage et Nouveau Participant.

    j'ai crée la classe CDialParticipant ou l'utilisateur aura à rentrer dans une editbox le nom, prenom, et age d'un participant.
    J'ai crée la classe CParticipant


    class CParticipants : public CObject /j'ai changé document en Object pr faire la serialisatation
    {

    public:
    CParticipants();
    // overridden for document i/o
    ~CParticipants();
    void Serialize(CArchive& ar);

    public:
    CString m_PartNom;
    CString m_PartPrenom;
    int m_PartAge;

    DECLARE_SERIAL(CParticipants) // a ajouter pr la serialisation

    };

    voici le point CPP avec ma fonction serialisation :
    IMPLEMENT_SERIAL(CParticipants,CObject,1) //j'ai pas trop compris à quoi servait ce 1 =(
    /////////////////////////////////////////////////////////////////////////////
    // CParticipants


    CParticipants::CParticipants()
    {
    m_PartAge=0;
    m_PartNom=" ";
    m_PartPrenom=" ";
    }


    CParticipants::~CParticipants()
    {
    }

    /////////////////////////////////////////////////////////////////////////////
    // CParticipants serialization

    void CParticipants::Serialize(CArchive& archive)
    {
    CObject::Serialize (archive);
    if (archive.IsStoring())
    {
    archive<<m_PartNom<<m_PartPrenom<<m_PartAge;
    }
    else
    {
    archive>>m_PartNom>>m_PartPrenom>>m_PartAge;
    }
    }


    Ensuite voici ici ma classe CVoyage ; notez bien qu'elle contient un element de type CParticipants
    Bien evidemment j'ai crée un boite de dialogue pr entrer les caracterisitiques du voyage heure d'arrivée, de depart, destination.

    class CVoyage : public CObject
    {

    public:
    void Affiche (CDC* pDC);
    COleDateTime m_odtRetour;
    COleDateTime m_odtDepart;
    CString m_destination;
    CParticipants *liste;

    CVoyage();
    CVoyage(CString dest);
    virtual ~CVoyage();
    void Serialize(CArchive& ar);
    DECLARE_SERIAL(CVoyage)

    };

    void CVoyage::Serialize(CArchive& archive)
    {
    CObject::Serialize(archive);
    if (archive.IsStoring())
    {

    archive<<m_destination;
    for (int i=1;i<2;i++)
    liste[i].Serialize(archive);
    }
    else
    {
    archive>>m_destination;
    for (int i=1;i<2;i++)
    liste[i].Serialize(archive);
    }
    }

    Enfin j'ai crée dans le Doc un pointeur sur CVoyage
    public:
    void OnCaractVoyage();
    CVoyage *pointeur;
    void OnCaractParticipants()

    et voici les fonctions defini dans MonProgDoc.cpp
    qui sont censé me permettre enregister le texte entré dans la bdd, l'associé à par exemple m_destination de CVoyage
    puis les retranscrire quand l'utilisitateur aura fait dans le menu Nouveau Voyage: Mais ca ne marche poooo

    void CClubMedDoc::OnNouveauParticipants()
    {
    CDialParticipants maboite1;
    //CParticipants(liste[1]);

    maboite1.m_nom1=pointeur->liste[1].m_PartNom; //pointeur de type CVoyage defini dans .doc
    //liste de type CParticipants

    maboite1.m_prenom1=pointeur->liste[1].m_PartPrenom;
    if (maboite1.DoModal()==IDOK)

    {
    pointeur->liste[1].m_PartNom=maboite1.m_nom1;
    pointeur->liste[1].m_PartPrenom=maboite1.m_prenom1;
    }
    UpdateAllViews(NULL);


    }

    void CClubMedDoc::OnNouveauVoyage()
    {
    CDialVoyage maboite2;

    maboite2.m_DialDestination=pointeur->m_destination;

    if (maboite2.DoModal()==IDOK)
    {
    pointeur->m_destination=maboite2.m_DialDestination;
    }
    UpdateAllViews(NULL);

    }

    j'ai aussi mis ça dans le DOC, je l'ai pris de qqun mais ça marche pas non plus


    /////////////////////////////////////////////////////////////////////////////
    // CClubMedDoc serialization

    void CClubMedDoc::Serialize(CArchive& archive)
    {
    pointeur->Serialize(archive);

    if (archive.IsStoring())
    {
    // TODO: add storing code here
    }
    else
    {
    // TODO: add loading code here
    }
    }

    pourtant j'ai oublié aucun implement serial, declare serial, j'ai oublié quelque chose mais quoi ??!

    (c tres lourd mais bon j'aurai pu envoyer mon prog a qui ?!)

    Cordialement

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Par défaut


    Il y a clairement un problème de conception.

    Si ton application est strictement une appli SDI, alors ce sont les objets CDocument qui doivent être instanciés & serialisés. Et si tu ne te plies pas exactement au modèle SDI, tu n'auras que des problèmes.

    Je pense que le mieux serait de revoir tout ça sur papier : quelles données doivent contenir tes documents, comment ils sont créés, visualisés, modifiés, et quelles sont les classes annexes nécessaires.

    Dès lors que tout ça sera clairement défini, refaire une appli avec doc sérialisable avec le wizard du Visual 6 devrait être rapide et sans gros souci,
    ce que tu cherches à faire étant assez simple...

  5. #5
    Membre confirmé Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Par défaut c bon c resolu
    merchi !

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Citation Envoyé par poulette3000
    merchi !
    Bonsoir,

    Si c'est résolu, il faut cliquer sur le bouton . Merci.
    (cela évite à ceux qui voudraient aider de lire un message pour rien et cela permet à ceux qui chechent une réponse de savoir plus facilement où ils peuvent la trouver)

    Cordialement,
    DS.

  7. #7
    mat.M
    Invité(e)
    Par défaut
    Poulette3000, il y a un forum spécifique MFC
    Ne pas poster ici.
    Sinon pour le code donné je ne vois pas ce qui ne va pas ; cela semble ok

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

Discussions similaires

  1. sos help pour création d'un magazine
    Par 1hémisphère dans le forum ALM
    Réponses: 1
    Dernier message: 11/09/2010, 23h15
  2. Help InnoSetup ou Installshield
    Par buzz dans le forum Outils
    Réponses: 4
    Dernier message: 30/07/2002, 15h26

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