vedge2000
Messages postés6Date d'inscriptionjeudi 25 octobre 2007StatutMembreDernière intervention15 décembre 2008
-
8 déc. 2008 à 10:55
vedge2000
Messages postés6Date d'inscriptionjeudi 25 octobre 2007StatutMembreDernière intervention15 décembre 2008
-
15 déc. 2008 à 07:35
Bonjour,
j'ai un petit soucis. Je dois reprendre les données d'un fichier typé binaire écrit il y a 15 ans en C. J'ai bien la structure mais malheureusement je ne peux pas lire correctement les info :
Voici la structure en C :
struct resp {
int g1_numger;
char g1_nom[34];
char g1_adresse[34];
}
voilà ma structure et le code pour reprendre le text :
TResp=record
g1_numger : integer;
g1_nom : array[1..34] of char;
g1_adresse : array[1..34] of char;
end;
...
i:=1;
while not Eof(FichierResp) do begin
Read (FichierResp, Resp) ;
StringGridGERANT.Cells[0,i]:=IntToStr(Resp.g1_numger);
StringGridGERANT.Cells[1,i]:=SuppCharZero(Resp.g1_nom);
StringGridGERANT.Cells[2,i]:=SuppCharZero(Resp.g1_adresse);
Inc(i);
end;
closefile(FichierResp);
StringGridGERANT.RowCount:=i+1;
Ca reprend bien des choses, mais le champ en integer part aux fraises.
beckerich
Messages postés302Date d'inscriptionjeudi 29 septembre 2005StatutMembreDernière intervention17 septembre 20132 9 déc. 2008 à 17:38
j'ai essayé ton idée Cirec, cela donne les mêmes résultats bizarres...
j'ai aussi essayé avec un smallint dans la structure, idem...
je vais ajouter un record dans le fichier et voir à la lecture ce que ça donne.
Luc.
beckerich
Messages postés302Date d'inscriptionjeudi 29 septembre 2005StatutMembreDernière intervention17 septembre 20132 9 déc. 2008 à 18:39
lors de l'enregistrement des records que j'ajoute au fichier, j'ai ajouté
FillChar(resp, SizeOf(tresp), 0);
et lorsque je relis le fichier, les données que j'ai ajoutées sont correctes.
par contre, les autres... es-tu certain que les données ne sont pas corrompues ?
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 10 déc. 2008 à 14:04
salut,
petite précision:
en 'C' les int sont codés en 16bits contrairement à DELPHI ou les integer sont en 32 bits d'autre part l'ordre des octets sont inversés en 'C' par rapport à DELPHI