Слияние кода завершено, страница обновится автоматически
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs,FindHexUnit, Vcl.StdCtrls, Vcl.ComCtrls,Winapi.MMSystem,QWorker;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
ListBox1: TListBox;
function cCallBACK(Address:NativeUInt):Boolean;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
d:Integer;
FF:TMemoryStream;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
a,b:Integer;
C:TCompareMemory;
i:Integer;
begin
ff := TMemoryStream.Create;
ff.LoadFromFile('c:\111111.BIN');
//初始化,一般填$FF
C := TCompareMemory.Create(256);
//设置搜索回调
c.OnCompareCallBack := cCallBACK;
//哈希表建模
c.MemoryToHashTable(FF.Memory,ff.Size);
a := timeGetTime;
for i := 0 to 0 do
begin
d := 0;
//b := GetTickCount;
//开始搜索,第二个参数填字符串数组数
//c.CompareHashHexs('E9 ?? ?? ?? ??');
// c.CompareHashHexs('44 2D ?? 3C 48 89 5C 24 08 ??');
c.CompareHashHexs('FF 00 ?? ?? ?? ??');
//c.CompareHashHexs(['44','2D','??','3C','48','89','5C','24','08','28'],10);
end;
ShowMessage(Format('搜索速度:%d 结果数量:%d',[timeGetTime - a,d]));
//ShowMessage(c.Statics);
//ShowMessage(c.Statics);
c.ClearHashTable;
c.Free;
ff.Free;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i,t:Integer;
begin
ListBox1.Items.BeginUpdate;
for I := 1 to 99 do
begin
Randomize;
Randomize;
t:=Random($ffffff);
ListBox1.Items.Add(t.ToString + ' ' + (t * 83 mod 99).ToString)
end;
ListBox1.Items.EndUpdate;
end;
function TForm1.cCallBACK(Address:NativeUInt):Boolean;
begin
// ShowMessage('');
// Form1.Label1.Caption := (address - Integer(FF.Memory)).ToHexString;
// ListView1.AddItem(address.ToHexString,nil);
Result := True;
d := d+1;
end;
end.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )