深入scripting runtime library 之二
上一次我向大家介绍了利用scripting runtime library获取驱动器信息、对文件夹以及文件进行操作的
方法,这里介绍的是scripting runtime library一个不起眼但是比较有用的对象——dictionary对象
如果在vb中要实现象字典一样一一对应的列表并实现查询,例如实现学生学号同学生姓名一一对应,输入
学号就可以得到学生姓名这样的程序。你会使用什么什么方法呢?一般的方法是建立两个列表,分别在两个列
表中输入学生姓名和学号,在查询时首先查询学号列表中相符合的学号,然后在学生姓名列表中调出相应的学
生姓名。但是这样做编程的量增大,而且不便于维护。还有的读者可能想到了使用数据库,但是这样做显得有
一些“杀鸡用牛刀”,而且调用数据库对于程序的尺寸和运行速度有很大影响。这里我要象大家介绍的是利用
scripting runtime library中的dictionary对象实现字典功能。
下面首先通过程序来介绍dictionary对象的使用
首先建立一个新的工程文件,在form1中加入一个listbox控件,一个textbox控件,然后在form1的代码窗口
中加入以下代码:
dim dictemp as new scripting.dictionary
private sub form_load()
list1.additem "apple"
list1.additem "banana"
list1.additem "grape"
list1.additem "orange"
list1.additem "strawberry"
dictemp.add "apple", "苹果"
dictemp.add "orange", "柑橘"
dictemp.add "banana", "香蕉"
dictemp.add "grape", "葡萄"
dictemp.add "strawberry", "草莓"
text1.text = ""
end sub
private sub form_unload(cancel as integer)
dictemp.removeall
set dictemp = nothing
end sub
private sub list1_click()
dim astr as string
astr = list1.list(list1.listindex)
text1.text = dictemp.item(astr)
end sub
private sub list1_dblclick()
dim astr as string
text1.text = ""
astr = list1.list(list1.listindex)
list1.removeitem (list1.listindex)
dictemp.remove (astr)
end sub
运行程序,点击list1中的项目,相对应的中文解释就会出现在text1中间。
上面的程序十分简单,但是这个字典对象具有很多优点:
首先这是一个对象,这就使得程序的可读性和可维护性变的十分好。同时它的操作也十分简单,利用additem方法
就可以增加一个具有关键字的项目,利用item属性就可以返回一个关键字相对应的项目,利用remove方法就可以删除
一个项目。