Bonjour à tous,

Alors je vous explique mon problème:

J'ai une classe "Evnt_Horodate" declarée comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
class Evnt_Horodate
	{
	    public:
	    int flag_suppression;
	    int flag_initialise;
	    Element element; //Classe Element
	};
Elle contient un objet element de la classe Element declarée comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
class Element
{
    public:
    int data;
    int date;
};
Je voudrais stocker cette classe dans un fichier binaire et pouvoir la relire par le suite.
Ma fonction d'écriture:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
void ajouter(Element *element)
{
    //Ouverture du fichier
    ofstream fichier_ecriture("Stockage.txt",ofstream::binary);
 
    //Creation de l'objet evnt_horodate a ecrire
    Evnt_Horodate *evnt_horodate;
    evnt_horodate = new Evnt_Horodate();
    event_horodate->element.date = 15;
 
    //Parametrage de l'objet evnt_horodate
    evnt_horodate->flag_initialise = 1;
    evnt_horodate->flag_suppression = 0;
 
 
    if(fichier_ecriture)
    {
        //Position de l'octet
        int adresse_octet = 0;
 
        //Positionnement du curseur dans le fichier
        fichier_ecriture.seekp(adresse_octet,ios::beg);
 
        cout<<"Ajout d'un élement"<<endl;
        //Ecriture de la classe
        fichier_ecriture.write((char*) evnt_horodate, sizeof(Evnt_Horodate));
 
        //Fermeture du fichier
        fichier_ecriture.close();
    }
    else
    {
        TRACE("erreur d'ecriture dans le fichier !");
    }
 
    //Destruction des objets
     delete evnt_horodate;
     delete element;
}
Et ma fonction de lecture:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
void lire()
{
            int date_lue;
 
            //Creation d'un objet de type Evnt_Horodate pour la lecture
            Evnt_Horodate *evnt_horo_lecture;
            evnt_horo_lecture = new Evnt_Horodate();
 
            //Ouverture en lecture du fichier Stockage.txt
            ifstream fichier_lecture;
            fichier_lecture.open("Stockage.txt",ios::binary);
 
            if(fichier_lecture)
            {
                //Positionnement du curseur dans le fichier
                fichier_lecture.seekg(0,ios::beg);
 
                //Lecture de l'evenement
                fichier_lecture.read((char*) evnt_horo_lecture, sizeof(Evnt_Horodate));
 
                //Lecture de la date de cet evenements
                date_lue = evnt_horo_lecture->element.date;
                cout<<"date lue :"<<date_lue<<endl;
 
                //Fermeture du fichier
                fichier_lecture.close();
            }
            else
            {
                cout<<"Erreur de lecture dans le fichier !"<<endl;
            }
 
            //Destruction de l'objet evnt_horo_recherche
            delete evnt_horo_lecture;
 
 }
Le fichier est bien créé et mon programme y écrit bien.
Mais "date_lue" qui devrait me renvoyer la valeur date de l'objet "element" contenu dans l'objet evnt_horo_lecture, reste toujours à 0...

Vous voyez un problème dans mon code ?

Je vous remercis par avance !