Ecrire le contenu d'une structure dans un fichier

Ecrire le contenu d'une structure dans un fichier - C - Programmation

Marsh Posté le 07-03-2005 à 10:01:14    

Salut all,
 
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  :jap:

Reply

Marsh Posté le 07-03-2005 à 10:01:14   

Reply

Marsh Posté le 07-03-2005 à 10:06:38    

utilise fwrite
 
fwrite(&ma_struct, sizeof ma_struct, 1, fichier);

Reply

Marsh 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

Reply

Marsh Posté le 07-03-2005 à 10:52:40    

VOila le code:

Code :
  1. fwrite(data, sizeof(*data), 1, fd);


cela ecrit 40 octets.
 
Ensuite, fread retourne 0
 
Help :jap:

Reply

Marsh Posté le 07-03-2005 à 11:00:06    

super ... c'est exactement la même chose (sauf le parenthésage excessif) ...

Reply

Marsh 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!

Reply

Marsh 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...

Reply

Marsh 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 ?

Reply

Marsh 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

Reply

Marsh 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

Reply

Marsh Posté le 07-03-2005 à 14:55:47   

Reply

Marsh Posté le 07-03-2005 à 14:56:06    

Bonjour,

bob007 a écrit :

Code :
  1. fwrite(data, sizeof(*data), 1, fd);



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).

Reply

Marsh Posté le 07-03-2005 à 14:57:34    

oui, mais c'est pas efficace, ni facile à manipuler.

Reply

Marsh 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.

Reply

Marsh Posté le 07-03-2005 à 15:07:22    

ben tu définis comment tu stocke tes données, quel format, quel disposition, etc

Reply

Marsh 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 ?

Reply

Marsh Posté le 07-03-2005 à 15:29:58    

non

Reply

Marsh Posté le 07-03-2005 à 17:43:58    

merci

Reply

Sujets relatifs:

Leave a Replay

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