tcount在哪个文件里_如何把Tlist保存为数据流或文件,并可以从数据流或文件中读出数据到Tlist(100分)...

).buf.Memory^,TestType(ListTest.Items).buf.Size);

3.在保存到文件时先将ListTest.Count保存后,再写ListTest其它数据,读出来时只要一个For循环即可

保存:

ms := TMemoryStream.Create;

ms.writebuffer(ListTest.count, sizeof(ListTest.count);//增加这句,保存列表数

for i:=0 to ListTest.Count -1 do

begin

...

end;

打开时:

ms.LoadFromFile(filename);

ms.ReadBuffer(Cnt, Sizeof(ListTest.count)); //将列表数读取到变量Cnt中,使用Sizeof(ListTest.count))是为了和保存时的一致

for i := 0 to Cnt-1 do

begin

...//读列表数据

end;

按你原来的方式也是可以的,我只是觉得不太好,

4.释放列表时,一定要注意释放数据,否则会有内存泄漏

while ListTest.count > 0 do

begin

TestType(ListTest.Items[0]).buf.Free; //释放Tmemorystream对象

Dispose(ListTest.Items[0]); //释放TestType结构

ListTest.Delete(0);

end;

ListTest.Free;

5.Sizeof()参数改成相关变量更好些,这样你一但要更改数据类型时,可以不改Sizeof()参数代码

ms.readBuffer(blk.cf ,sizeof(blk.cf)); //Word改成blk.cf

ms.readBuffer(blk.size ,sizeof(blk.size));//Cardinal改成blk.size

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值