如何比较2个TMemoryStream中的内容(100分)

  • 主题发起人 主题发起人 cjsam
  • 开始时间 开始时间
C

cjsam

Unregistered / Unconfirmed
GUEST, unregistred user!
比如有2个变量:a,b:TMemoryStream;
a,b都有内容,我想比较a,b中有多少字节的相同内容,请问怎样比较?假如以64个字节为单位,都从a,b的头开始读,如果第一个64字节的内容一样,就把a,b的指针移动到第65个字节,再比较a,b的从65字节到128字节是否一样,如果一样,继续向后移动.

我写的部分代码.有问题.请大家帮我改改吧.,主要是怎的比较2个指针内的数据区:谢谢;
var
p1,p2:pointer;
temps:Tmemorystream;
Equa :boolean=true;EquaLen:integer=64;
***********************
while Equa do
begin
a.seek(EquaLen-64,soFromBeginning);
b.seek(EquaLen-64,soFromBeginning);
temps.Clear;
temps.CopyFrom(a,EquaLen);
p1:=temps.Memory;
temps.Clear;
temps.CopyFrom(b,EquaLen);
p2:=tempS.Memory;
if (p1^=p2^)
begin
EquaLen:=EquaLen+64;
end
else
Equa:=false;
end;
 
comparemem(a.memory,b.memory,a.size)
 
谢谢.好象就可以了.不行在来问.不知道这个函数,呵呵!
 

Similar threads

D
回复
0
查看
867
DelphiTeacher的专栏
D
D
回复
0
查看
836
DelphiTeacher的专栏
D
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部