VBS使用Scripting.Dictionary字典对象
2016-09-22 14:03
417 查看
Scripting.Dictionary是个很有用的组件,其创建了类似于Key索引对应Value值的字典对象,并且在其内部提供了快速索引访问的机制,可以让我们通过Key直接索引到指定的Value,比遍历二维数组有效得多。
其在VBScript中是这样访问的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Dim objDict Set objDict = WSH.CreateObject("Scripting.Dictionary") ' .Add(key, value) objDict.Add "a", "value1" objDict.Add "b", "value2" objDict.Add "c", "value3" '直接通过key=b索引到value2 WSH.Echo objDict.Item("b") objDict.Remove "b" ' 删除索引b及其对应的值 ' 以下是遍历字典 Dim objKeys, objItems, i objKeys = objDict.Keys objItems = objDict.Items For i = 0 To objDict.Count -1 WSH.Echo "Key=" & objKeys(i) &_ " AND Value=" & objItems(i) Next ' 判断指定的key是否存在 If objDict.Exists("b") Then WSH.Echo "Found it" Else WSH.Echo "Not Exists!" End If objDict.RemoveAll ' 清空字典内所有的key及其对应value Set objDict = Nothing |
当然在JScript访问的方式一样,但是在遍历这里需要一点点变动。
由于Scripting.Dictionary的Keys和Items的集合返回的是VB安全数组,也就是说JScript访问需要多个转换的步骤,方法就是采用new VBArray()对象,相关信息可以参考MSDN的《VBArray Objects》,当获得VBArray对象后就可以通过getItem方法获取数组元素了,值得注意的是这个VBArray对象自己不创建数组,其只起到一个转换的作用,也可以将其看成是一个操作接口吧。当然其toArray()方法可以将其转换为真正的JScript数组,届时可以直接像操作JScript数组一样操作VBArray转换的对象了。
原文:http://wangye.org/blog/archives/60/
相关文章推荐
- 【VBS】-【VBS使用Scripting.Dictionary字典对象】
- OC学习之道:OC对象,字典,集合的使用方法NSDictionary,NSMutableDictionary, NSSet,NSMutableSet,NSCountedSet
- 使用ASP的Scripting.Dictionary对象打造完美购物车
- ASP的数组不支持键值对,可用Scripting.Dictionary字典对象实现
- Scripting.Dictionary字典对象
- Asp:Scripting.Dictionary对象的使用
- javascript字典对象Dictionary用法[new ActiveXObject("Scripting.Dictionary")]
- ActiveX 部件不能创建对象 Scripting.Dictionary 的解决方法
- [asp]Scripting.Dictionary的使用
- 在QTP中使用Dictionary对象
- scripting.dictionary对象
- 通过QTP的XMLUTIL将XML和字典对象Dictionary之间的互相转换
- 使用XmlSerializer类将对象序列化为Xml格式保存 - 支持泛型的Dictionary,list 等集合类型
- VBS教程:对象-Dictionary
- Dictionary对象的使用
- 如何使用Dictionary对象?(
- ActiveX 部件不能创建对象 'Scripting.Dictionary
- ASP获取汉字拼音(使用Scripting.Dictionary)
- ASP中Dictionary键值对对象的使用
- VBS教程:在 VBScript 中使用对象