sauver des objets de class ds un fichier et les chercher apres,posibl? - C++ - Programmation
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 ?
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?
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
//....
}
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.
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
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..