关于TList

chenyq2008 2009-07-08 10:58:25
如何批量将TList中的数据用文本文件保存下来???例如TList中的数据数量达到1000,就将这1000数据保存到文本文件中
...全文
95 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZYSteven 2009-07-10
  • 打赏
  • 举报
回复
如果一定要用TList,那么可以考虑将一个TStringList保存到TList里,然后使用TStringList.SaveToFile()保存到文件。
下次打开时就可以直接通过TStringList.LoadFromFile()一次性读到TList里面。

下面举个简单的例子:

//***保存***
function SaveFile():TList;
var
List:TList;
i:Integer;
str:string;
strings:TStrings;
begin
List:=TList.Create;
strings:=TStringList.Create;
for i:=0 to 99 do
begin
str:='内容'+IntToStr(i);
strings.Add(str); //首先把内容写到TStringList
end;
List.Add(strings); //然后再把内容加到TList里

strings.SaveToFile('c:\ppp.txt'); //保存到文件
Result:=List; //返回你要的TList
end;


//***读出***
function TForm1.LoadFile():TList;
var
List:TList;
strings:TStrings;
begin
strings:=TStringList.Create ;
list:=TList.Create;
strings.LoadFromFile('c:\ppp.txt'); //读进文件
List.Add(strings ); //将读进的内容加到TList
Result:=List; //返回你要的TList
end;

不得闲 2009-07-10
  • 打赏
  • 举报
回复
只能将各个对象进行串行化,然后再做保存
读取的时候,再反串行化然后加载,具体的,可以看看TTreeView中的Items等节点的保存
dinoalex 2009-07-08
  • 打赏
  • 举报
回复
关注
starluck 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chenyq2008 的回复:]
引用 6 楼 bdmh 的回复:
保留指针?,你的程序下次打开时,指针位置都变了,保留他有什么用,你还不如,循环list把指针指向的记录保存为文件呢,读取时,依次读取,并把新的指针位置付给list

现在就是一个个地写入文件的,但这样速度太慢,所以想批量写入
[/Quote]

對象可以接口實現序列化保存,但你上面的意思似乎這個保存沒有什麼意義。
xzhifei 2009-07-08
  • 打赏
  • 举报
回复
批量保存也只是保存无用的指针,这个只能一个个的写入文件
bdmh 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chenyq2008 的回复:]
引用 6 楼 bdmh 的回复:
保留指针?,你的程序下次打开时,指针位置都变了,保留他有什么用,你还不如,循环list把指针指向的记录保存为文件呢,读取时,依次读取,并把新的指针位置付给list

现在就是一个个地写入文件的,但这样速度太慢,所以想批量写入
[/Quote]
不能
chenyq2008 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bdmh 的回复:]
保留指针?,你的程序下次打开时,指针位置都变了,保留他有什么用,你还不如,循环list把指针指向的记录保存为文件呢,读取时,依次读取,并把新的指针位置付给list
[/Quote]现在就是一个个地写入文件的,但这样速度太慢,所以想批量写入
bdmh 2009-07-08
  • 打赏
  • 举报
回复
保留指针?,你的程序下次打开时,指针位置都变了,保留他有什么用,你还不如,循环list把指针指向的记录保存为文件呢,读取时,依次读取,并把新的指针位置付给list
chenyq2008 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bdmh 的回复:]
引用 3 楼 chenyq2008 的回复:
是放对象的。。。


要看你的对象是什么了,如果单是保存看到的文字,直接savefile即可,如果连object也要保持,那就自己写了
[/Quote]应该说,放的是记录指针
bdmh 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chenyq2008 的回复:]
是放对象的。。。
[/Quote]
要看你的对象是什么了,如果单是保存看到的文字,直接savefile即可,如果连object也要保持,那就自己写了
chenyq2008 2009-07-08
  • 打赏
  • 举报
回复
是放对象的。。。
haitao 2009-07-08
  • 打赏
  • 举报
回复
Tlist好像是放对象的,
如果放的是字符串,是可以savetofile
bdmh 2009-07-08
  • 打赏
  • 举报
回复

list:TStringList;
.
.
.
list.SaveToFile('文件名');
xiaowei_001 2009-07-08
  • 打赏
  • 举报
回复
savetofile.这样保存很快的,你看它的源码,是用文件流形式操作的!

5,386

社区成员

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

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