zoukankan      html  css  js  c++  java
  • VBS使用Scripting.Dictionary字典对象

    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/

  • 相关阅读:
    LC.225. Implement Stack using Queues(using two queues)
    LC.232. Implement Queue using Stacks(use two stacks)
    sort numbers with two stacks(many duplicates)
    LC.154. Find Minimum in Rotated Sorted Array II
    LC.81. Search in Rotated Sorted Array II
    LC.35.Search Insert Position
    前后端分离:(一)
    Redis基本使用(一)
    GIT篇章(二)
    GIT篇章(一)
  • 原文地址:https://www.cnblogs.com/c-x-a/p/5896099.html
Copyright © 2011-2022 走看看