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 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| procedure TForm1.Button1Click(Sender: TObject);
var
Fichier: string;
FileToSearch: integer;
RechSEI, RechOFMD: TByteDynArray;
PosSEI: TInt64DynArray;
PosOFMD: TCardinalDynArray;
iOff, TotalSEI: integer;
S: AnsiString;
begin
Fichier:='C:\Temp\Test.hex';
SetLength(RechSEI, 6);
RechSEI[0]:=$00;
RechSEI[1]:=$00;
RechSEI[2]:=$00;
RechSEI[3]:=$01;
RechSEI[4]:=$06;
RechSEI[5]:=$25;
SetLength(RechOFMD, 4);
RechOFMD[0]:=$4F;
RechOFMD[1]:=$46;
RechOFMD[2]:=$4D;
RechOFMD[3]:=$44;
TotalSEI:=SearchBinaryInFile(Fichier, RechSEI, PosSEI, True, MaxInt, False);
FileToSearch := FileOpen(Fichier, fmOpenRead);
Memo1.Lines.BeginUpdate();
try
Memo1.Lines.Add('---');
for iOff := Low(PosSEI) to High(PosSEI) do
begin
FileSeek(FileToSearch, PosSEI[iOff] + Length(RechSEI) , FILE_BEGIN);
FileRead(FileToSearch, S[1], 40);
if SearchBinaryInBinary(@S[1], 40, RechOFMD, PosOFMD, True, MaxInt, False) > 1 then Memo1.Lines.Add(IntToStr(PosOFMD[iOff]));
end;
finally
Memo1.Lines.EndUpdate();
end;
end; |
Partager