树型控件,通用对话框,读写配置文件
接上一篇文章 . . . . . .
我们开始写导入数据的程序。
有上一篇的文章内容,我们开始看到保存出来的ini文件内容是这样的:
所以,要想读取这个ini文件的内容的话,我们要理解这个保存出来的内容。
首先,从上一篇的文章内容,我们知道,如果获取到的索引ID有子项目的话,表示该节点是根节点,
如果是根节点的话,我们要想保存一个 ‘#’ 然后再写入节点的内容,怎样就可以区分出哪些是根节点,哪些是子节点了。
从上面的ini文件我们可以看出来,节点1 和 节点5 是属于根节点,其他的均属于子节点,
so,我们读取ini文件的步骤是:
1.判断打开读取文件的窗口是否选中了读取的文件,以及用户是否点击了确定按钮。如果用户点击了确定按钮,我们就继续往下执行程序,否则终止当前函数的执行。
2.如果用户点击了确定按钮的话,我们通过通用对话框来获取用户选择的文件路径,文件名等信息。
3.我们获取当前显示的树型框(显示的是树型框1,树型框2,还是树型框3.)
4.假如当前窗口显示的是树型框1,那么我们需要获取树型框的数据,如果数据不为空的时候,我们需要弹出信息框来提示用户:当前内容不为空,是否清空当前内容。
5.如果用选择是,则清空当前树型框的内容,否则终止程序的执行。
6.通过循环结构来读取ini文件的内容,因为我们并不知道ini文件的内容有多少,所以我们一般使用一个无限循环来读取数据,当获取到的数据为空的时候,我们就跳出当前的循环(重点:无限循环里面一定要加入一个判断条件用来终止循环,否则就会一直进入死循环)
7.循环体里面,我们开始读取数据,当读取到的数据是 ‘#’ 的是,我们读出来的下一条数据就是父节点的数据,当我们读取到父节点数据的时候,我们要把这个数据添加到当前的树型框节点里面去。然后返回一个对象,用来作为子节点的父项目索引。
8.如果获取到的数据不是父节点的话,我们直接通过上一下保存下来的父项目索引,用来添加到当前树型框的当前父项目的子节点去。
9.如果读取到的内容为空的时候,我们跳出循环体,或者是直接终止当前函数。
同样,树型框2 和 树型框3 的处理也是一样的道理。代码如下图所示:
调用格式: 〈文本型〉 读配置项 (文本型 配置文件名,文本型 节名称,文本型 配置项名称,[文本型 默认文本])
读取指定配置文件中指定项目的文本内容。本命令为初级命令。
参数<1>的名称为“配置文件名”,类型为“文本型(text)”。指定配置文件的名称,通常以.ini作为文件名后缀。
参数<2>的名称为“节名称”,类型为“文本型(text)”。包含欲读入配置项所处节的名称。
参数<3>的名称为“配置项名称”,类型为“文本型(text)”。参数值指定欲读入配置项在其节中的名称。
参数<4>的名称为“默认文本”,类型为“文本型(text)”,可以被省略。如果指定配置项不存在,将返回此默认文本。如果指定配置项不存在且本参数被省略,将返回空文本。
完成上述代码之后,我们F5执行代码,然后在联系人二的窗口上,单机右键弹出菜单,然后选择导入数据。
打开了读取文件的对话框后,我们选择之前保存出来的文件,然后点击确定。
数据重新写入之后,显示如下:
目测数据好像不完整,其实是数据已经读取完了。只要双击一下父节点,就会展开节点,显示自己点的内容了。
如下图,跟我们原来的数据是一致的。