Bonjours,

j'ai un problème avec ma fonction fread.
Je doit lire un fichier généré en Pascal avec du C.

j'ai vérifié la concordance des structures (taille octet,correspondance des types pascal / C j'ai même du utiliser un # pragma pack (1) car j'avais un problème d'alignement mémoire sur ma structure.

Lorsque je fait mon fread j'arrive à récupérer les 3 premier champs de ma structure correctement et après j'ai des valeur incohérent.

Je fais un feof et un ferror pour savoir ou est le problème.
ferror me retourne 0
feof me retourne 16

EDIT :
le fread me retourne 0.
et il me remplis que les 4 premier champs et ne remplis pas le reste (les valeur incohérente sont des valeur d’initialisation du compilateur.

Je utilise Visual C++ 6.0

j'ai l'impression que il arrêt de lire le fichier.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
        TModele Model;
	Handle=fopen("test.MOD","r");
 
        if(Handle ==NULL)
	{
		exit(1);
	}else{
 
		lecture=fread(&Model,sizeof(TModele),1,Handle);
 
		error=feof(Handle);
                error=ferror(Handle);
        }