流的读方法,怎么不能把数据读到动态数组里(代码见内)???急急急

lastshrill 2001-10-31 11:46:34
procedure UncompressMulti_Info(aData: TStream);
var
Buf: array[0..1] of Byte;
BufAryInfo: array of Char;
BufInfo:string;
i:integer;
begin
aData.Seek(0, soFromBeginning);
aData.Read(Buf, 2);
i:= Buf[0] * 255 + Buf[1];
SetLength(BufInfo, i - 2);
SetLength(BufAryInfo, i - 2);
aData.Seek(2, soFromBeginning);
aData.Read(BufAryInfo, (i- 2) * sizeof(Char));
for i:=0 to i- 3 do
BufInfo[i+1] := BufAryInfo[i]; //这里不对
end;
...全文
167 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dy_kiss 2002-01-18
  • 打赏
  • 举报
回复
有谁知道应该怎么把动态数组释放????
lastshrill 2001-11-08
  • 打赏
  • 举报
回复
to Kingron(戒网中……) :
Read(BufAryInfo[0],(i-2)*.....);
是对的

to lwm8246(lwm8246):
您说的方法我用过,是可行的
谢谢大家
lwm8246 2001-11-07
  • 打赏
  • 举报
回复
动态数组没用过但读到字符串可以.
function CopyStreamToString(const Stream:TStream):string;
begin
SetLength(Result,Stream.Size);
Stream.Read(Result[1],Stream.Size);
end;
Kingron 2001-11-07
  • 打赏
  • 举报
回复
应该是Read(BufAryInfo[0],(i-2)*.....);
如果还不行,就改成Read(BufAryInfo[0]^,(i-2)*.....);

lastshrill 2001-11-03
  • 打赏
  • 举报
回复
aData.Read(BufAryInfo, (i- 2) * sizeof(Char));//这里I就变了
lastshrill 2001-10-31
  • 打赏
  • 举报
回复
to : hellion(恶人)
改了后,编译提示:Constant Object cannot be passed as var parameter
hellion 2001-10-31
  • 打赏
  • 举报
回复
aData.Read(BufAryInfo, (i- 2) * sizeof(Char));
改为
aData.Read(@BufAryInfo[0], (i- 2) * sizeof(Char));
试试

DeityFox 2001-10-31
  • 打赏
  • 举报
回复
gz
cobi 2001-10-31
  • 打赏
  • 举报
回复
关注
sillyou 2001-10-31
  • 打赏
  • 举报
回复
BufInfo := StrPas(BufAryInfo + #0);
riseifuku 2001-10-31
  • 打赏
  • 举报
回复
look
bubble 2001-10-31
  • 打赏
  • 举报
回复
学习

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧