深入Scripting Runtime Library 之二
www.applevb.com
上一次我向大家介紹了利用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方法就可以刪除
一個項目。