各位高手:请帮帮忙!
var vstream,dstream:TMemorystream;
buf:array[0..1] of byte;
i:int;
be:=10;
for i:=1 to num do
begin
j:=i div num;
if i mod num >0 then
begin
be:=be+80*j+i
vstream.Seek(be,soFrombeginning);
vstream.Read(buf,sizeof(buf));
s:=inttohex(buf[0],2);
.....
end;
end;
出现的问题是进入循环以后i=2的时候在vstream.Seek(be,soFrombeginning)就报错;
但是此时be=61的,我不知道为什么会报错!
将这句vstream.Read(buf,sizeof(buf));
改为:
vstream.Read(buf[0],sizeof(buf));
代码有错
当i=2时, be=12
j始终等于0
i值从1到num, 所以i永远小于num, 所以
1.i div num=0
2.i mod num=i