TMemoryStream的问题(50分)

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

coolmyf

Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序中用到TMemoryStream类进行数据处理,用了两个函数,但是
发现有问题。

procedure procA(var thestream:TMemoryStream;tmpstr:string);
var i:integer;
begin
thestream.clear;
thestream.position:=0;
i:=thestream.write(tmpstr,length(tmpstr));
end;

procedure procB;
var mystream:TMemoryStream;
arr:array [1..6] of char;
i:integer;
begin
mystream:=TMemoryStream.create;
procA(mystream,'AAAAAA');
i:=mystream.read(arr,6);
showmessage(arr[3]);
end;


结果在showmessage中总是显示空字符,请问我错在哪里?谢谢!!!!


 
procedure procA(var thestream:TMemoryStream;tmpstr:string);
begin
thestream.clear;
thestream.position:=0;
thestream.write(tmpstr[1],length(tmpstr)); //tmpstr[1],不是tmpstr
end;
procedure procB;
var
mystream:TMemoryStream;
arr:array [1..6] of char;
begin
mystream:=TMemoryStream.create;
procA(mystream,'AAAAAA');
mystream.Position:=0; //重新定位到头部
mystream.read(arr[1],6); //理由同上
showmessage(arr[3]);
end;
 
procA 过程中在thestream.Write(tmpstr,length(tmpstr))之后,thestream.Position为[:)]尾.
 
是什么问题
 
谢谢,你所讲的是对的,我已经试过了,可是我还是不太明白。能给我讲讲为什么吗?
 
接受答案了.
 
谢谢,我已经明白了!
 
后退
顶部