Создаёт ассоциативный массив
Ключ | Значение |
---|---|
Key 1 | Item 1 |
Key 2 | Item 2 |
Key n | Item n |
$oDict = ObjCreate('Scripting.Dictionary')
Устанавливает режим сравнения ключей на уникальность:
0 - Бинарный (учитывает регистр букв), по умолчанию
1 - Текстовый (не учитывает регистр букв)
2 - Database
$oDict.CompareMode = 1 ; Устанавливает режим сравнения
$iMode = $oDict.CompareMode ; Возвращает текущий режим сравнения
Устанавливает новое название ключа. Не может быть два одинаковых ключа в объекте. Если происходит переименование не существующего ключа, то это вызывает ошибку. Ключ может быть типом данных: строка, числа целое и с плавающей точкой.
$oDict.Key($vKey) = $vNewKey
Устанавливает или читает новое значение указанного ключа. Значение может быть типом данных: строка, числа целое и с плавающей точкой, логическое значение, бинарные данные.
$oDict.Item($vKey) = $vNewValue ; устанавливает значение или добавляет если не существует
$vValue = $oDict.Item($vKey) ; читает значение
Добавляет ключ $vKey и присваивает ему значение $vValue. Нельзя добавить ключ, если он уже существует в объекте.
$oDict.Add($vKey, $vValue)
Извлекает все ключи из объекта.
$Array = $oDict.Keys()
Извлекает все значения ключей в объекте.
$Array = $oDict.Items()
Извлекает количество элементов в объекте (ключей).
$iCount = $oDict.Count()
Удаляет ключ из объекта.
$oDict.Remove($vKey)
Удаляет все ключи из объекта.
$oDict.RemoveAll()
Проверяет существование ключа в объекте, возвращает True или False
$fBool = $oDict.Exists($vKey)
If $oDict.Exists($vKey) Then ...
Пример
#include <Array.au3>
Global $aArray[5] = [1, 'строка', 'строка', 1, 'строка']
; удаляет дубликаты из массива, аналогично _ArrayUnique.
$aArray = _ArrayRemoveDuplicates($aArray)
_ArrayDisplay($aArray, 'aArray')
Func _ArrayRemoveDuplicates(Const ByRef $aArray)
If Not IsArray($aArray) Then Return SetError(1, 0, 0)
Local $oDict = ObjCreate("Scripting.Dictionary")
$oDict.CompareMode = 0 ; учитывать регистр букв, бинарное сравнение
For $i In $aArray
$oDict.Item($i) ; shown by wraithdu
Next
Return $oDict.Keys()
EndFunc ;==>_ArrayRemoveDuplicates