如何用TreeControl控件实现这样的功能?

linsi 2005-09-26 12:10:53
有一个文本文件,内容大致如下:

A01=张三
A011=63
A012=85
A0125=96
A0127=61
A0127.2=68
A0127.5=沈阳
A02=李四
A020=80
A021=92
A03=王五


我想把里面的内容用树形控件的办法显示出来,由于内容可能会变的。而且数量也
可能会比较多(300左右)。如何实现呢?

我用 ini读取的功能做的,发现不理想。第一级A01,A02,A03还可以显示出来,到后面的几级就不太好弄了。
...全文
176 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
linsi 2005-10-09
  • 打赏
  • 举报
回复
谢谢 firstofworld:你讲的方法也许适用,我不想试了,数据有几千个,如果用遍历查询父、子节点太麻烦,而且浪费时间,呵呵~~

如果做成数据库就该好一些,但我没有时间弄了,还有其它的事要做,以后闲下来时再想想其它办法。

再次感谢 firstofworld!
firstofworld 2005-09-27
  • 打赏
  • 举报
回复
把读取出来的一行字符串,拆分成两部分A01和张三,把张三添加到父亲节点,保存A01到一个数组,并记录A01和张三的关系,然后依次判断,包含A01并且比他多一个字符的就是张三的儿子节点,如:A011,A012,就这样一次判断啊!当然这样的话可能会比较麻烦。

你也可以一次全部读出来,把他们全部拆分开来,保存到一个数组中去,然后在这个数组中查找类似于A01这样的数据,作为父亲节点,然后针对每个父亲节点添加儿子节点,就可以。这样处理起来比较简单。至于带小数点的,你先不处理,等全部处理完了以后,你找出所有带小数点的,判断小数点前面字符的位数和内容,来判断他应该是哪个节点的儿子,然后添加到他的下面就可以了
linsi 2005-09-26
  • 打赏
  • 举报
回复
嗯,是有联系啊,可是如何弄成Tree的样式?在Tree里不要带等号前面的A0,A01等编号。

子Item如何判别和加载?比如A012下有两个子ItemA0125和A0127,那么,如何在程序里加上他们?我没有好的思路。。

你说进行文件读取,一次读入一行?再判别起来是不是很麻烦?

本来如果那些编号是有规律,且中间没有断号的就很好办了,比如A0121,A0122,A0123....

后面还有带个小数点的:A0127.2,A0127.5,更是让人挠头!

firstofworld 2005-09-26
  • 打赏
  • 举报
回复
怎么会不好弄呢?
你的子节点和父节点是有联系的啊
比如:A01=张三
A011=63
你先对读取的内容进行解析,是父节点的话,就装载父节点,然后继续读文件,一次对读出来的内容进行比对,判断他的类型不就可以了吗?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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