j'ai besoin d'ecrire le contenu d'une grosse structure dans un fichier (pour faire une sauvegarde en fait), et je ne vois pas comment calculer la taille de ce qu'il y a a ecrire.
Quelqu'un peut il m'aider ?
Merci par avance
Publicité
Posté le 07-03-2005 à 10:01:14
Taz
bisounours-codeur
Posté le 07-03-2005 à 10:06:38
utilise fwrite
fwrite(&ma_struct, sizeof ma_struct, 1, fichier);
bob007
Posté le 07-03-2005 à 10:39:37
yes ok merci, le probleme est que de cette maniere, j'obtiens un fichier de 40 octets, ce qui ne correspond surement pas a toute ma structure...
Je vais tester, mais si tu as une idee du pb, je prends!
Merci encore
bob007
Posté le 07-03-2005 à 10:52:40
VOila le code:
Code :
fwrite(data, sizeof(*data), 1, fd);
cela ecrit 40 octets.
Ensuite, fread retourne 0
Help
Taz
bisounours-codeur
Posté le 07-03-2005 à 11:00:06
super ... c'est exactement la même chose (sauf le parenthésage excessif) ...
bob007
Posté le 07-03-2005 à 14:16:59
oui mais le resultat n'est pas celui que j'attends. Jesuis d'accord avec toi, c'est bien la meme chose!
moi23372
Posté le 07-03-2005 à 14:18:24
montre nous un peu ta structure, normalement il n'y aucun probleme... sauf si bien sure tu as des pointeurs dans ta structure...
Taz
bisounours-codeur
Posté le 07-03-2005 à 14:35:21
et tu attend quoi comme résultat ? t'es pas entrain de nous dire sizeof ta_struct ne renvoie pas la bonne valeur ?
bob007
Posté le 07-03-2005 à 14:54:53
il y a des pointeurs dans la structure.Non Taz je ne dis pas sizeof ne renvoi pas la bonne structure, il est po con le sizeof !
Le probleme est que effectivement dans cette structure il y a des pointeurs. Comment faire dans ce cas.
Pour repondre a ta question Taz je voudrais qu'on me dise quelle taille mettre (enfin comment la calculer en fonction du nombre de pointeurs contenus dans cette fameuse structure).
Merci moi23372 pour l'info des pointeurs
Taz
bisounours-codeur
Posté le 07-03-2005 à 14:55:47
ben si y a des pointeurs, ta la solution toi même : les données ne sont pas dans ta structure. donc soit tu les mets dans ta structure, soit tu définis ton propre format de stockage
Cette manière de faire n'est pas portable (tu ne vas pas pouvoir transporter le fichier de sauvegarde de la structure), le plus simple est de mettre ça sous forme d'un fichier texte (en plus c'est plus facile pour visualiser le résultat).
Taz
bisounours-codeur
Posté le 07-03-2005 à 14:57:34
oui, mais c'est pas efficace, ni facile à manipuler.
bob007
Posté le 07-03-2005 à 14:57:42
@taz: Mon propre format de stockage, qu'entends tu par la ?
@gege2061: oui effectivement, mais je ne voudrais pas que l'user soit en mesure de lire trop facilement le contenu de ce fichier.
Taz
bisounours-codeur
Posté le 07-03-2005 à 15:07:22
ben tu définis comment tu stocke tes données, quel format, quel disposition, etc
bob007
Posté le 07-03-2005 à 15:27:51
ah d'accord, ouais y'a du boulot quoi.
Pas moyen de stocker le contenu de la structure et les donnees pointees d'un coup ?