深入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方法就可以删除
一个项目。