简单,但我给绕进去了(100分)

  • 主题发起人 主题发起人 歪就歪
  • 开始时间 开始时间

歪就歪

Unregistered / Unconfirmed
GUEST, unregistred user!
一个文本文件,格式是
Subject1
Item1-1
SubItem1-1-1
Detail
Detail_Description
SubItem1-1-2
Item1-2
Item1-3
SubItem1-3-1
Subject2
Item2-1
............

其中,所有缩进的地方都是TAB,子的层次就是用有几个TAB的缩进来
确定的。

我需要用TreeView去看它。Add和AddChild...大概应该是用递归吧,
我绕了几下就晕了。

谁行?



 
太easy了,呵呵拣个大钱包
treeview1.loadfromfile('yourdat.txt');
ok了
 
HUBDOG:

啊呀呀,抱歉,我没说清楚,那程序里……不好意思,程序里,已经把文件
打开了,放到一个TStringList里,先由前面的一大堆代码对那STRINGLIST
做了一通修修改改,然后才TSTRINGLIST读出,往TREEVIEW里写。

当然,你可以让我吧STRINGLIST写成个文件,再用TREEVIEW读出来,只是
我的下家还要对那STRINGLIST修修改改呢,把数据做为文件存进、取出,
似乎……有点儿太那个了,你就不能用段代码实现么?
 
procedure TForm1.Button1Click(Sender: TObject);
var
SL:TStringList;
MemStream:TMemoryStream;
begin
//treeview1.SaveToFile('c:/temp/temp.txt');
SL:=TstringList.Create;
SL.LoadFromFile('c:/temp/temp.txt');
//改完你的东西
MemStream:=TMemoryStream.Create;
SL.SaveToStream(MemStream);
MemStream.Position:=0;
Treeview1.LoadFromStream(MemStream);
MemStream.Free;
SL.Free;
end;
这个可以了吗?
 
好吧……歪就歪无可奈何的说!(存成文件和弄成MEMSTREAM没什么区别,这
HUBDOG!)

本来相信:一个精巧的递归最适合解决这样的问题,结果全让你这“歪门”的
代码给破坏了。

好吧,好吧,不想了,最近身体不好,不想想的太累了,谢谢你的帮助。
 
递归的程序看上去很美,但我觉得并不实用,速度慢,开销达.
 
hehe,你真要是想看递归,就看commctrls.pas中
ttreestrings.loadfromstream方法不就完了。
 
好吧,好吧,就这样
 
哎!真没敬业精神!
 
后退
顶部