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 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| procedure Toto(AStrings: TStrings);
const
Zone: array[1..32] of Byte = (1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4);
Search4: array[1..4] of Byte = (1, 2, 3, 4);
Search8: array[1..8] of Byte = (1, 2, 3, 4, 5, 6, 7, 8);
SearchO: array[1..8] of Byte = (1, 2, 3, 4, 1, 2, 3, 4);
var
Search: TByteDynArray; // mon C++ Builder refuse que je passe Search4, Search8 et SearchO directement à SearchBinaryInBinary, je ne sais pas si il y a une différence entre Delphi et le convertisseur Pascal\C++
OffSets: TCardinalDynArray;
I: Integer;
begin
SetLength(Search, Length(Search4));
for I := Low(Search) to High(Search) do
Search[I] := Search4[I + 1];
AStrings.Add('--- 4 normal');
SearchBinaryInBinary(@Zone[1], 32, Search, OffSets, True);
for I := Low(OffSets) to High(OffSets) do
AStrings.Add(IntToStr(OffSets[I]));
AStrings.Add('--- 4 over');
SearchBinaryInBinary(@Zone[1], 32, Search, OffSets, True, MaxInt, True);
for I := Low(OffSets) to High(OffSets) do
AStrings.Add(IntToStr(OffSets[I]));
SetLength(Search, Length(Search8));
for I := Low(Search) to High(Search) do
Search[I] := Search8[I + 1];
AStrings.Add('--- 8 normal');
SearchBinaryInBinary(@Zone[1], 32, Search, OffSets, True);
for I := Low(OffSets) to High(OffSets) do
AStrings.Add(IntToStr(OffSets[I]));
AStrings.Add('--- 8 over');
SearchBinaryInBinary(@Zone[1], 32, Search, OffSets, True, MaxInt, True);
for I := Low(OffSets) to High(OffSets) do
AStrings.Add(IntToStr(OffSets[I]));
SetLength(Search, Length(SearchO));
for I := Low(Search) to High(Search) do
Search[I] := SearchO[I + 1];
AStrings.Add('--- O normal');
SearchBinaryInBinary(@Zone[1], 32, Search, OffSets, True);
for I := Low(OffSets) to High(OffSets) do
AStrings.Add(IntToStr(OffSets[I]));
AStrings.Add('--- O over');
SearchBinaryInBinary(@Zone[1], 32, Search, OffSets, True, MaxInt, True);
for I := Low(OffSets) to High(OffSets) do
AStrings.Add(IntToStr(OffSets[I]));
end; |
Partager