加个问题:怎么把TList类型写到一个文件??? ( 积分: 50 )

  • 主题发起人 主题发起人 pl5th2001
  • 开始时间 开始时间
有一个SAVETOFILE的方法
 
List.LoadFromFile('a.txt');
...
List.SaveToFile('a.txt');
 
怎么把TList类型写到一个文件???
1、没法写!!!!
2、 --------有意义吗?
Tlist是个队列,管理指针等,
如果是其Tstringlist就不一样了

不知道是楼主什么情况!!!
 
怎么把TList类型写到一个文件???
1、没法写!!!!,
2、 --------有意义吗?
Tlist是个队列,没有SaveToFile等方法,有function Add(Item: Pointer): Integer;等方法, 它就是管理指针等,
Tstringlist就不一样了,有SavetoFile,LoadFromFile等

不知道是楼主什么情况!!!
 
需要自己些持久化方法.
难度视你TList里结构的难度而定.
 
..................
 
Tlist是没办法直接保存了,你自己写个保存方法吧,类似文本数据库的东西

循环保存list里每个指针的各个属性,每个指针一行,每个属性用个分隔符分开
 
看来楼主还不知道 TList 是什么!
 
bjaman,TstringList的父类为Tstrings,而不是从TList继承下来的!
 
tanshudan,不好意思,记错了。。。看来经验主义有时候是行不通的。。。。
 
楼主确实对 TList 了解不够。不过你要把 TList 所指的内容写到文件里,可以参考下面的片断:
type
TRec = record
n: Integer;
f: Double;
end;
PRec = ^TRec;

var
l: TList;
i: Integer;
p: PRec;
f: file of TRec;
begin
l := TList.Create;
for i := 0 to 3 do
begin
New(p);
p.n := 100 * (i + 1);
p.f := 1 / p.n;
l.Add(p);
end;

AssignFile(f, 'd:/a.txt');
Rewrite(f);
for i := 0 to l.Count - 1 do
Write(f, TRec(l.Items^));
CloseFile(f);

for i := l.Count - 1 to 0 do
Dispose(l.Items);
l.Destroy;
end;
 
其实我是在解FOXMAIL的IND文件,经过分析后发现里面的格式就是一个LIST或者类似与LIST的一个东西,每个LIST。ITEM又是一个指针,弄起来的确挺麻烦的
 
接受答案了.
 
后退
顶部