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 43 44 45
|
procedure TForm1.Button1Click(Sender: TObject);
const
A: array[1..12] of Byte = ($6D,$61,$69,$6E,$63,$6F,$64,$65,$00,$FF,$FF,$FF);
B: array[1..12] of Byte = ($6D,$61,$69,$6E,$63,$6F,$64,$65,$43,$00,$FF,$FF);
E: array[1..12] of Byte = ($6D,$61,$69,$6E,$63,$6F,$64,$65,$43,$53,$00,$FF);
var
SourceFileName: string;
HexaString: AnsiString;
OffSets: TIntegerDynArray;
I,J,K: Integer;
begin
edit1.Clear;
if opendialog1.Execute then
begin
edit1.Text:=opendialog1.FileName ;
SourceFileName := edit1.Text;
SetLength(HexaString, Length(A));
CopyMemory(@HexaString[1], @A[1], Length(A));
if SearchStringInBigFile(SourceFileName, HexaString, OffSets, True) > 0 then
for I := Low(OffSets) to High(OffSets) do
ShowMessage(IntToStr(OffSets[I]));
ShowMessage('A1');
SetLength(HexaString, Length(B));
CopyMemory(@HexaString[1], @B[1], Length(B));
if SearchStringInBigFile(SourceFileName, HexaString, OffSets, True) > 0 then
for J := Low(OffSets) to High(OffSets) do
ShowMessage(IntToStr(OffSets[J]));
ShowMessage('A2');
SetLength(HexaString, Length(E));
CopyMemory(@HexaString[1], @E[1], Length(E));
if SearchStringInBigFile(SourceFileName, HexaString, OffSets, True) > 0 then
for K := Low(OffSets) to High(OffSets) do
ShowMessage(IntToStr(OffSets[K]));
ShowMessage('A3');
end;
end; |
Partager