Bonjour,

J'ai créer un type qui est la structure exacte de ce qu'il y a dans mon fichier.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
type THeaderFile = record
  Header    : string[2];
  Type1      : String[1];
  Type2      : string[1];
  Pays        : string[1];
  Tel          : string[1];
  Val          : string[6];
  Val2        : string[1];
  Blank      : string[3];
end;
Donc avec un TFileStream, je tente de récupérer les données :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  fFile : TFileStream;
  hHeader : THeaderFile;
begin
  if OpenDialog1.Execute then
  begin
    fFile := TFileStream.Create(OpenDialog1.FileName,fmOpenRead);
    With fFile do
    try
      seek(0, soFromBeginning); // Debut du fichier
      Position := 106; // position 106 du fichier
      ReadBuffer(hHeader,Sizeof(hHeader));
 
  Memo1.Lines.Add('Header : ' + IntToStr(Ord(hHeader.Header[1])) + IntToStr(Ord(hHeader.Header[2])));
  Memo1.Lines.Add('Type 1 :' + IntToStr(Ord(hHeader.Type1[1])));
  Memo1.Lines.Add('type 2 :' +IntToStr(Ord(hHeader.Type2[1])));
  Memo1.Lines.Add('Pays :' + IntToStr(Ord(hHeader.Pays[1])));
  Memo1.Lines.Add('Tel :' + IntToStr(Ord(hHeader.Tel[1])));
  Memo1.Lines.Add('Val :' + hHeader.Val);
  Memo1.Lines.Add('Val2 :' + hHeader.Val2);
  Memo1.Lines.Add('Blank :' + hHeader.Blank);
    finally
      fFile.Free;
    end;
  end;
end;
Le problème c'est que les 3 premiers octects sont bon (hHeader.Header, et hHeader.Type1) mais après ca devient n'importe quoi.

Si quelqu'un voit d'où vient le problème.

Pour info la structure du fichier :
[106c]
[Header 2c][Type1 1c][Type2 1c][Pays 1c][Tel 1c][Val 6c][Val2 1c][Blank 3c][Nombre de caractère = Type1 + Type2 + Pays + Tel + Val2]
[Header 2c][Type1 1c][Type2 1c][Pays 1c][Tel 1c][Val 6c][Val2 1c][Blank 3c][Nombre de caractère = Type1 + Type2 + Pays + Tel + Val2]
[Header 2c][Type1 1c][Type2 1c][Pays 1c][Tel 1c][Val 6c][Val2 1c][Blank 3c][Nombre de caractère = Type1 + Type2 + Pays + Tel + Val2]
etc ...