procedure myprint(p1,p2:pbyte); //比较and输出 var x1,y1:integer; x2,y2:integer; i:byte; begin x1:=10; y1:=10;
x2:=410; y2:=10; i:=0; try while true do begin if p1^<>p2^ then form1.listbox1.Canvas.Font.Color:=clred else form1.listbox1.Canvas.Font.Color:=clblack;
form1.listbox1.Canvas.TextOut(x1,y1,inttohex(p1^,2)); form1.listbox1.Canvas.TextOut(x2,y2,inttohex(p2^,2)); x1:=x1+20; x2:=x2+20; i:=i+1; inc(p1); inc(p2); if i>=16 then begin i:=0; x1:=10; y1:=y1+20; x2:=410; y2:=y2+20; end; end; except showmessage('完毕!'); end;
end;
procedure TForm1.Button3Click(Sender: TObject); //比较按妞的事件 var file1,file2:file; p1,p2:pbyte; size1,size2:cardinal;
begin if (fileexists(edit1.Text)) and (fileexists(edit2.Text)) then begin assignfile(file1,edit1.Text); assignfile(file2,edit2.Text ); try reset(file1,1); reset(file2,1); size1:=filesize(file1); size2:=filesize(file2); try getmem(p1,size1); getmem(p2,size2); except showmessage('分配内存出错!'); exit; end; blockread(file1,p1^,size1); blockread(file2,p2^,size2); //CreateThread(nil,0,@myprint,nil,0,threadid); myprint(p1,p2); freemem(p1); freemem(p2); finally closefile(file1); closefile(file2); end; end else showmessage('请先打开文件'); end;