delphi 内存比较函数 - CompareMem(文件、数组等比较)  
官方Delphi 学习QQ群: 682628230(三千人)\n
频道

delphi 内存比较函数 - CompareMem(文件、数组等比较)



所属单元:SysUtils

 

函数功能:快速内存比较函数,可对两个文件比较、数组进行比较。据测试速度比一般算法要高60~110%。

 

 

一、文件的比较

你是否遇到过比较两个任意后缀名文件内容是否相同的问题?(TFileStream其他类可以方便的操作这些文件,但如果说到比对内容,恐怕……)

 

下面就用这个函数快速而简单的比对两个文件内容的是否相同。

 

procedure TForm1.btn1Click(Sender: TObject);

var

cs1, cs2:TMemorystream;

begin

cs1 := TMemoryStream.Create;

cs2 := TMemoryStream.Create;

try

    cs1.LoadFromFile('C:\a.bin');

    cs2.LoadFromFile('C:\b.bin');

    if (cs1.Size = cs2.Size) and CompareMem(cs1.Memory, cs2.Memory,cs1.Size) then

      ShowMessage('文件内容相同')

    else

      ShowMessage('文件内容不同!');

finally

    cs1.free;

    cs2.free;

end;

end;

 

二、比较两个二维数组是否相等(转)

{对比静态数组}

procedure TForm1.btn4Click(Sender: TObject);

var

arr1: array[0..3] of AnsiChar;

arr2: array[0..3] of Byte;

begin

arr1[0] := 'A';

arr1[1] := 'B';

arr1[2] := 'C';

arr1[3] := 'D';

arr2[0] := 65;

arr2[1] := 66;

arr2[2] := 67;

arr2[3] := 68;

 

if CompareMem(@arr1, @arr2, SizeOf(arr1)) then

    ShowMessage('arr1 与 arr2 中的数据相同');

end;

 

{对比动态数组}

procedure TForm1.btn2Click(Sender: TObject);

var

arr1: array of AnsiChar;

arr2: array of Byte;

begin

SetLength(arr1, 4);

SetLength(arr2, 4);

arr1[0] := 'A';

arr1[1] := 'B';

arr1[2] := 'C';

arr1[3] := 'D';

arr2[0] := 65;

arr2[1] := 66;

arr2[2] := 67;

 

 

arr2[3] := 68;

if CompareMem(arr1, arr2, SizeOf(arr1)) then

    ShowMessage('arr1 与 arr2 中的数据相同');

end;

 

{多维数组也一样}

 

procedure TForm1.btn3Click(Sender: TObject);

var

arr1: array[0..1, 0..1] of AnsiChar;

arr2: array[0..1, 0..1] of Byte;

begin

arr1[0, 0] := 'A';

arr1[0, 1] := 'B';

arr1[1, 0] := 'C';

arr1[1, 1] := 'D';

arr2[0, 0] := 65;

arr2[0, 1] := 66;

arr2[1, 0] := 67;

arr2[1, 1] := 68;

 

if CompareMem(@arr1, @arr2, SizeOf(arr1)) then

    ShowMessage('arr1 与 arr2 中的数据相同');

end;


————————————————


原文链接:https://blog.csdn.net/haiou327/article/details/6647162



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.047918081283569 seconds