sauver des objets de class ds un fichier et les chercher apres,posibl?

sauver des objets de class ds un fichier et les chercher apres,posibl? - C++ - Programmation

Marsh Posté le 23-10-2002 à 21:37:20    

Ecoutez, je suis entrain de creer un arbre genealogique........
Pour pouvoir sauvegarder les objets de la class CNoeud, je dois les transmettre dans un fichier ofstream fich; jusqu'au la y'a pas de blemes mais pour recuperer mes objets pour des eventuels traitements La,,,lA..... il me repeche des chiffres en HEX , genre adreess ou je sais pas quoi...
aidez moi s'il vous plait...
à vous claviers..

Reply

Marsh Posté le 23-10-2002 à 21:37:20   

Reply

Marsh Posté le 23-10-2002 à 21:59:32    

c'est tres touffu ton histoire, d'ailleurs j'ai rien capté
 
tu veux sauver un arbre sur le dur, c ca ?

Reply

Marsh Posté le 23-10-2002 à 22:02:48    

oui
 

Reply

Marsh Posté le 23-10-2002 à 22:09:34    

Ca m'a l'air d'etre un probleme de pointeur tout bete... T'es sure que tu ne stockerais pas des addresses mémoire dans ton fichier par hasard?

Reply

Marsh Posté le 23-10-2002 à 22:22:14    

si j'ai une  
class maClass
{
 //... corps
};
 
void main()
{
  maClass obj;
ofstream f("e:\\lolo.txt" , ios::out | ios::app);
if(f.is_open())
{
   while(rep != 'n';)
 
  {
  cin >> obj;
  f<<obj;
  }
f.close();
}
ifstream f("e:\\lolo.txt" , ios::in);
 
if (f.is_open())
{
 obj<<f; // est ce correcte ???
         // sinon HELp
//....
}

Reply

Marsh Posté le 24-10-2002 à 09:31:28    

Ben le probleme c'est que si tu stockes des addresses mémoire dans un fichier tu ne peux pas etre sure qu'elles seront encore valides a la prochaine execution. Si tu souhaites conserver la référenciation ( ce qui me semble etre ton but ) il faut définir un systeme d'addressage par id. Pas besoin de te le trainer pendant toute l'execution, hein, mais il faut juste au moment de l'écriture et de la lecture faire la conversion id <-> pointeur. Cependant, cette méthode va te forcer a mettre les mains dans le cambouis et ne pas te contenter d'un >>. Enfin bon, quelqu'un a surement un moyen plus simple.
 
Sinon, tu peux aussi carrément rajouter a ta classe un champ "id" qui servira qu'au chargement et a l'écriture et dans ce cas tu peux charger l'objet d'un coup, a condition de retablir les pointeurs apres chargement et de rétablir les id avant enregistrement.


Message édité par Ace17 le 24-10-2002 à 09:34:17
Reply

Marsh Posté le 24-10-2002 à 09:42:37    

Essaye de voir du coté du  Memcpy()
 
En espérant que ca pourra t'aider, et bonne chance

Reply

Marsh Posté le 25-10-2002 à 12:21:33    

vous etes tres aimables .
merci bcp.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed