关于数据库导出文件的排版格式问题,请高手赐教!(50分)

  • 主题发起人 主题发起人 batconv
  • 开始时间 开始时间
B

batconv

Unregistered / Unconfirmed
GUEST, unregistred user!
把treeview中的树状数据导出成文本文件,默认如下图:
电器
家电
电视机
空调
冰箱
手机
机电产品

但这样不直观,我想生成这样的,不知怎么办,如图:
电器
|---家电
| |---电视机
| |---空调
| |---冰箱
|---手机
|---机电产品

就是说在导出的文本文件中也尽量象treeview中有虚线标示,可以清楚直观的看到各自的关系,请高手指点应该怎么办,是在treeview中下功夫还是在导出后的文本文件中下功夫,并最好给出代码,谢谢。
邮箱 batconv@163.com
 
你可以从TTreeView派生出一个子类并覆盖SaveTreeToStream方法, 代码就不写了, 无非是字符串处理而已.
 
我使用的是dxDBTreeview的savetofile方法,有没有简单一点的方法?或者直接在生成的文本文件中改,问题是当我用reset(F)打开一个文本文件时,我发现无法用seek(F,0)定位,不知是什么原因。是否在xp中不支持seek了,那文本文件中的指针定位用什么呢?
 
写一个递规就可以完成了,你试一下下面的代码:
////////////////////////////////////////////////////////
procedure TForm1.Button1Click(Sender: TObject);

procedure SaveNode(ANode: TTreeNode; AItems: TStrings);
var
I, nCount: Integer;
S: string;
begin
if ANode = nil then Exit;
nCount := ANode.Level;
S := '';
for I := 1 to nCount - 1 do
S := S + ' | ';
if nCount > 0 then
S := S + ' |-- ';
S := S + ANode.Text;
AItems.Add(S);
SaveNode(ANode.getFirstChild, AItems);
SaveNode(ANode.getNextSibling, AItems);
end;

begin
Memo1.Lines.Clear;
SaveNode(TreeView1.Items[0], Memo1.Lines);
end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部