Lecture d'un objet de taille variable à partir d'un fichier

cs_chelheb Messages postés 5 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 6 décembre 2008 - 9 nov. 2008 à 11:03
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 - 14 nov. 2008 à 15:15
Bonjour tout le monde !
Je travaille actuellement sur un projet en MFC, et j'ai quelques problèmes en ce qui concerne la lecture à partir d'un fichier .
1- J'ai un objet (instance d'une classe) qui peut avoir une taille differentes à chaque fois (contient un tableau dynamiqe) !
Pour l'écriture il n'y a pas de problèmes (je pense, mais je n'ai pas verifié) !
2- Par contre pour la lecture, j'ai des soucis car la lecture copie l'objet dans un autre , et je pense qu'il faut préciser la taille que je connait préalablement .

Donc c'est un peu normal , mais il faut que je trouve une solution .

Merci de m'aider

7 réponses

Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
9 nov. 2008 à 11:12
Salut,
Oui en fait tu as déjà donner la solution: il faut codé dans ton fichier le nombre de d'élément que contient ton tableau (avant d'écrire ton tableau).
Ainsi, à la lecture, tu pourras savoir combien de place réserver en mémoire et combien de caractère lire...
A+
________________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
0
cs_chelheb Messages postés 5 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 6 décembre 2008
9 nov. 2008 à 11:35
D'accord mais en fait je sais pas comment ils stockés les champs, est ce que le premier correspond au premier champs de l'objet ainsi de suite .
Sinon si c'est le cas je dervrai faire une premiere lecture je construit bien mon objet et puis apres faire une deuxieme lecture et affecter les autres valeurs .
Non ?
0
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
9 nov. 2008 à 11:45
Dans ton fichier txt tu ne vas stokker que les attributs de ton objet... Donc tu SAIS comment son stokker tes champs puisque c'est toi qui les as placé.
Donc 1 passage suffit.

________________________________________________________________________________
Mon site internet :   http://Imanalyse.free.fr
0
cs_chelheb Messages postés 5 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 6 décembre 2008
9 nov. 2008 à 12:04
Le grand soucis c'est que dans mon tableau de taille variable j'ai des champs du type CString qui n'ont pas la meme taille, donc c'est un peu delicat .

:-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_chelheb Messages postés 5 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 6 décembre 2008
9 nov. 2008 à 12:38
Le soucis c'est que je veux faire ça sur les fichiers binaires !
0
cs_Lucky92 Messages postés 180 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 16 août 2012 2
9 nov. 2008 à 14:59
Les MFC offrent un mécanisme de sérialisation/désérialisation. Ce concept va te permettre de résoudre tous tes problèmes.
0
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
14 nov. 2008 à 15:15
Lorsque j'écris des chaines de caractères dans un fichier binaire, je les précède toujours par la taille de la chaîne, ainsi, tu es capable de lire l'information.

--- Pseudo code ---
Ecriture:
int len=strlen(str);
ecrire(fichier, &len, sizeof(int));
ecrire(fichier, str, len*sizeof(char));

Lecture:
int len=0;
lecture(fichier, &len, sizeof(int);
str=calloc(len+1, sizeof(char);
lecture(fichier, str, len*sizeof(char))

--Vive le CSavon
0
Rejoignez-nous