delphi 结构体数组 5

我用动态创建数组的方法在结构体里使用,然后用文件流进行读取,但是却读不了TTest=packedrecordpublicaT:arrayofByte;end;proced... 我用动态创建数组的方法在结构体里使用,然后用文件流进行读取,但是却读不了

TTest = packed record
public
aT: array of Byte;
end;

procedure Choose;
var
TMpStream: TFileStream;
aTest: TTest;
begin
TmpStream: =TFileStream.Create('d:\1.txt', fmopenread);(1.txt 2000字节)
setlength(aTest.aT, 10);
ZeroMemory(@aTest, SizeOf(aTest));
TmpStream.read(aTest.aT, 10); //这里读取不了
.......
end;
indy10 idudpserver控件,Delphi Xe2 环境下编译

直接手打在提问中的,可能有小错误,请忽略,3Q
求解答
展开
 我来答
笃翠琴祝今
2019-10-08 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:30%
帮助的人:829万
展开全部
用数组麻烦,而且你定义这么长的数组。很多时候用不完,浪费内存。直接用TList把结构体存入TList中就可以了,既不用浪费内存,又可以方便的使用TList提供的方法来管理你的结构体“数组”。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FengLinYuShu
2013-01-21 · 超过25用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:90.4万
展开全部
动态数组(aT: array of Byte;)的内存分配比较复杂,建议采用定长数组来写
追问
能说下吗
追答
也就是用类似
TTest = packed record
public
aT: array[0..2047] of Byte;//这里改成定长数组
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
开心小书生
2013-01-29 · TA获得超过406个赞
知道小有建树答主
回答量:321
采纳率:50%
帮助的人:301万
展开全部
流读取文件后,可能位置处于尾上。
TEMPSTREAM.POSTION:= 0;
再读试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式