txt中的信息
+公司集合
++公司A
公司A的部门1
公司A的部门2
公司A的部门3
++公司B
公司B的部门1
公司B的部门2
公司B的部门3
公司B的部门4
++公司C
公司C的部门1
公司C的部门2
公司C的部门3
公司C的部门4
公司C的部门5
++公司D
公司D的部门1
公司D的部门2
公司D的部门3
……
为了发帖好看,我将TXT中的信息选择成了xml代码格式。
在此我有2个问题:
Q1: 现在我需要根据上面txt文件中的信息动态生成一棵树,该如何做才好?
Q2:生成了树之后,当我在点击了1级节点(即就是公司A,公司B,公司C,公司D……)会弹出一个对话框界面。此界面的格式是这样的:
假如我单击了公司A这个节点,就生成下面的界面:(括号代表下拉列表框)
公司A的部门1 ()
公司A的部门2 ()
公司A的部门3 ()
上面的界面要动态生成,该如何实现?
此处的动态的意思是:txt中的信息是会变化的,但格式不会变,我想根据公司A这个节点下的具体子项来生成对应的界面。
不知道问题2是否描述清楚。
6 个解决方案
#1
这个题有难度,UP
#2
你把信息制作成XML文件不是更方便读取?很多现成的库访问XML,这些节点的父子关系非常容易访问。
不过你的这个信息格式算是很简单的,解析起来应该不复杂,可以用ifstream来一行一行读取字符串,压缩前面的空格或TAB,前面一个+号的是第一级,两个+号的是第二级,没+号的是第三级,在内存中组装成树。
不过你的这个信息格式算是很简单的,解析起来应该不复杂,可以用ifstream来一行一行读取字符串,压缩前面的空格或TAB,前面一个+号的是第一级,两个+号的是第二级,没+号的是第三级,在内存中组装成树。
#3
1、读文件时用一个变量记录当前节点的深度。逐行读入文件内容,滤掉前面的空格,检查+号的个数。如果+号个数为0,则插入到当前节点。如果+号个数不为0,则与当前深度比较,确定插入的位置(大于则依然插入到当前节点,等于则插入到父节点,小于则根据差值逐层取父节点),插入后将新节点作为当前节点。
2、根据选择的节点遍历子数,创建控件并插入子项。
2、根据选择的节点遍历子数,创建控件并插入子项。
#4
这种树的格式用xml文件保存比较好,这样你解析起来也很容易,同时也可以方便的生成树的结构。
然后根据你的树,对应的插入控件以及对话框...
然后根据你的树,对应的插入控件以及对话框...
#5
这个就用最普通的多叉树构造就是了。。。。。。
#6
参考代码:
http://blog.csdn.net/dizuo/archive/2009/03/08/3968596.aspx
把测试程序中的main主程序,构造元素的数据来源改为读取自txt文件即可
http://blog.csdn.net/dizuo/archive/2009/03/08/3968596.aspx
把测试程序中的main主程序,构造元素的数据来源改为读取自txt文件即可
#1
这个题有难度,UP
#2
你把信息制作成XML文件不是更方便读取?很多现成的库访问XML,这些节点的父子关系非常容易访问。
不过你的这个信息格式算是很简单的,解析起来应该不复杂,可以用ifstream来一行一行读取字符串,压缩前面的空格或TAB,前面一个+号的是第一级,两个+号的是第二级,没+号的是第三级,在内存中组装成树。
不过你的这个信息格式算是很简单的,解析起来应该不复杂,可以用ifstream来一行一行读取字符串,压缩前面的空格或TAB,前面一个+号的是第一级,两个+号的是第二级,没+号的是第三级,在内存中组装成树。
#3
1、读文件时用一个变量记录当前节点的深度。逐行读入文件内容,滤掉前面的空格,检查+号的个数。如果+号个数为0,则插入到当前节点。如果+号个数不为0,则与当前深度比较,确定插入的位置(大于则依然插入到当前节点,等于则插入到父节点,小于则根据差值逐层取父节点),插入后将新节点作为当前节点。
2、根据选择的节点遍历子数,创建控件并插入子项。
2、根据选择的节点遍历子数,创建控件并插入子项。
#4
这种树的格式用xml文件保存比较好,这样你解析起来也很容易,同时也可以方便的生成树的结构。
然后根据你的树,对应的插入控件以及对话框...
然后根据你的树,对应的插入控件以及对话框...
#5
这个就用最普通的多叉树构造就是了。。。。。。
#6
参考代码:
http://blog.csdn.net/dizuo/archive/2009/03/08/3968596.aspx
把测试程序中的main主程序,构造元素的数据来源改为读取自txt文件即可
http://blog.csdn.net/dizuo/archive/2009/03/08/3968596.aspx
把测试程序中的main主程序,构造元素的数据来源改为读取自txt文件即可