moumouteb
Messages postés192Date d'inscriptiondimanche 16 janvier 2005StatutMembreDernière intervention28 février 2011
-
24 août 2006 à 16:25
moumouteb
Messages postés192Date d'inscriptiondimanche 16 janvier 2005StatutMembreDernière intervention28 février 2011
-
25 août 2006 à 18:09
Bonjour,
J'ai cherché de la documentation pour savoir comment enregistrer dans un fichier sous Windows. J'ai trouvé la fonction :
WriteFile(...) mais elle ne peut enregistrer que des chaines de
carractères. Comment faire pour enregistrer d'autres types de varibles
tel que int, double, bool...
merci.
--------------------
Quand la merde vaudra de l'or les pauvres naitrons sans trou cu cul. Coluche.
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201416 24 août 2006 à 16:37
Salut,
WriteFile() enregistre une suite d'octets. Tu peux donc créer un buffer, le remplir par tes données formatées selon tes besoins puis enregistrer le tout dans un fichier. Pour lire ces données le programme doit donc faire l'opération inverse. Il doit connaitre l'organisation de ces données dans le fichier avant de les traiter.
L'avant dernié argument doit pas etre NULL tu dois donné ladresse d'un DWORD qui contiendra le nombre d'octet qui on pu etre écrit dans le fichier par WriteFile()
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201013 25 août 2006 à 18:03
Une classe ou une structure va écrire tous ses membres à la suite:
Evidemment, il ne faut pas de pointeurs dans les données, sinon c'est l'adresse qui est écrite sur 4 octets et c'est tout.
struct
{
double a;
int b
} s;
Pour sauvegarder s, tu fais ceci:
WriteFile(hfile, &s, sizeof s, &d, 0);
Et pour relire:
ReadFile(hfile, &s, sizeof s, &d, 0);
Il ne faut pas copier les octets d'une variable dans un buffer, mais écrire directement ces valeurs comme ci dessus
_____________________________________
Un éditeur de ressources gratuit pour Windows
Vous n’avez pas trouvé la réponse que vous recherchez ?
moumouteb
Messages postés192Date d'inscriptiondimanche 16 janvier 2005StatutMembreDernière intervention28 février 201110 24 août 2006 à 17:52
Merci pour tous ces conseil par contre je préfère ne pas convertir en
char aussi pour ne pas que le fichier soit lisible (et donc
transformable) avec un simple bloc-note. Merci aussi pour l'astuce du
buffer.
Par contre mon code marchais tout à l'heure mais plus maintenant et je ne sais pas pourquoi....
moumouteb
Messages postés192Date d'inscriptiondimanche 16 janvier 2005StatutMembreDernière intervention28 février 201110 25 août 2006 à 17:15
Pour enregistrer tout les membres d'une classe existe-il des méthodes
particulières ou faut-il fait cela membre par membre? (avec les MFC je
sais qu'il existe la sérialisation mais la...).
Et sinon pour la technique à racpp comment peut on copier les octés de
chaque variable dans un buffer? et savoir combien d'octés va prendre
chaque variable?
ouch ça fait beaucoup de questions... merci pour votre aide.
--------------------
Quand la merde vaudra de l'or les pauvres naitrons sans trou cu cul. Coluche.