Problème de relecture dans un fichier

Mastersam Messages postés 116 Date d'inscription dimanche 26 septembre 2004 Statut Membre Dernière intervention 13 février 2008 - 16 nov. 2005 à 22:08
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 16 nov. 2005 à 23:47
bonjour, j'ai créé une structure:

typedef struct headerstruct{
char nom[32];
int taille;
long debut;
}headerstruct, *LPHEADERST;

puis ensuite j'écris une variable de ce type dans un fichier:

struct headerstruct fileheader;
int valeurtmp=MYFILEVERSION;
fileheader.debut=0;
strcpy(fileheader.nom,"FileVersion");
fileheader.taille=sizeof(valeurtmp);
fileheader.debut+=sizeof(headerstruct);

WriteFile(fileproject,&fileheader,sizeof(headerstruct),&numberofbytewritten,NULL);

je ferme mon fichier, puis si je l'ouvre avec le bloc note j'ai bien 40 octets commençant par "FileVersion".
Mais le problème c'est que si dans mon application je reli le fichier:

struct headerstruct fileheader;
ReadFile(fileproject,&fileheader,sizeof(headerstruct),&numberofbyteread,NULL);

je ne retrouve rien du tout dans fileheader.nom, or fileheader.taille et fileheader.debut ont bien les valeurs que j'avais enregistré précédemment.

Je ne vois pas pourquoi le premier membre de ma structure ne prend pas "FileVersion" qui convient très bien pour un char nom[32];

http://www.rc-bot.com/

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 nov. 2005 à 23:47
fileheader.nom doit bien avoir 'FileVersion' mais pas sur du tout qu'il y ait un zéro final, qlq'un édite ton fichier et enregistre par exemple...
Faut assurer en mettant fileheader.nom[31] = 0; sur chaque structure lue.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
Rejoignez-nous