Объект Dictionary представляет собой ассоциативный массив элементов, которые могут иметь различные типы. Каждому элементу соответствует уникальный ключ, с помощью которого осуществляется доступ к элементу. Ключом, как правило, является целое число или строка, но в общем случае ключом может быть все что угодно, за исключением массива. Объект Dictionary создается и возвращается, если в методе ActiveXObject() имя сервера и типа установлено равным "Scripting.Dictionary". Объект Dictionary имеет целый ряд свойств и методов, которые позволяют использовать элементы словаря.
Пример:
Set Dict = CreateObject("Scripting.Dictionary")
Синтаксис: Count
Возвращаемое значение: число, количество элементов коллекции.
Замечание: только чтение.
Пример:
Set Dict = CreateObject("Scripting.Dictionary") Dict.Add 1, "One" Dict.Add 2, "Two" MsgBox Dict.Count
Синтаксис: Item(<Key>)
Возвращаемое значение: элемент коллекции, соответствующий заданному ключу.
Замечание:чтение и запись.
Пример:
Set Dict = CreateObject("Scripting.Dictionary") Dict.Add 1, "One" Dict.Add 2, "Two" Dict.Item(1) = "Один" MsgBox Dict.Item(1) MsgBox Dict.Item(2)
Синтаксис: Key(<Key>)=<NewKey>
Возвращаемое значение: устанавливает новое значение ключа в коллекции.
Замечание: запись.
Пример:
Set Dict = CreateObject("Scripting.Dictionary") Dict.Add 1, "One" Dict.Add 2, "Two" Dict.Key(1) = "Eins" MsgBox Dict.Item("Eins") MsgBox Dict.Item(2)
Синтаксис: CompareMode
Возвращаемое значение: устанавливает способ сравнения ключей коллекции. Установка свойства возможна, только если коллекция пуста.
Возможные значения:
Замечание: чтение и запись.
Пример:
On Error Resume Next Set Dict = CreateObject("Scripting.Dictionary") Dict.CompareMode = 1 Dict.Add "a", "One" Dict.Add "A", "Two" If Not Err.Number=0 Then MsgBox "CompareMode = 1" & vbCrLf & Err.Description Err.Clear Dict.RemoveAll Dict.CompareMode = 0 Dict.Add "a", "One" Dict.Add "A", "Two" If Not Err.Number=0 Then MsgBox "CompareMode = 0" & vbCrLf & Err.Description
Синтаксис: Add(<Key>,<Item>)
Назначение: добавляет элемент в коллекцию.
Параметры:
Пример:
Set Dict = CreateObject("Scripting.Dictionary") Dict.Add "a", "One" Dict.Add 1, "Two"
Синтаксис: Exists(<Key>)
Назначение: проверяет существование ключа в коллекции. Если да, возвращает True, иначе - False.
Параметры: <Key> - ключ.
Пример:
Set Dict = CreateObject("Scripting.Dictionary") Dict.Add "a", "One" Dict.Add 1, "Two" If Dict.Exists(1) Then MsgBox "Ключ существует!"
Синтаксис: Remove(<Key>)
Назначение: удаляет ключ и его элемент из коллекции. Если такой ключ не существует, возникнет ошибка.
Параметры: <Key> - ключ.
Пример:
Set Dict = CreateObject("Scripting.Dictionary") Dict.Add "a", "One" Dict.Add 1, "Two" If Dict.Exists(1) Then Dict.Remove(1)
Синтаксис: RemoveAll
Назначение: очищает коллекцию.
Параметры: нет.
Пример:
Set Dict = CreateObject("Scripting.Dictionary") Dict.Add "a", "One" Dict.Add 1, "Two" Dict.RemoveAll MsgBox Dict.Count
Синтаксис: Items
Назначение: возвращает массив элементов коллекции. Позволяет перебрать коллекцию в цикле.
Параметры: нет.
Пример:
Set Dict = CreateObject("Scripting.Dictionary") Dict.Add "a", "One" Dict.Add 1, "Two" Arr = Dict.Items For i=0 To Dict.Count-1 MsgBox Arr(i) Next
Синтаксис: Keys
Назначение: возвращает массив ключей коллекции. Позволяет перебрать коллекцию в цикле.
Параметры: нет.
Пример:
Set Dict = CreateObject("Scripting.Dictionary") Dict.Add "a", "One" Dict.Add 1, "Two" Arr = Dict.Keys For i=0 To Dict.Count-1 MsgBox Arr(i) Next