Вы здесь

АссоциативныйМассив

Сообщение об ошибке

Warning: Trying to access array offset on value of type null в функции taxonomy_menu_trails_init() (строка 102 в файле /usr/local/www/wiki9/sites/all/modules/taxonomy_menu_trails/taxonomy_menu_trails.module).

Описание

Вики: Ассоциативный массив (словарь) — абстрактный тип данных (интерфейс к хранилищу данных), позволяющий хранить пары вида «(ключ, значение)» и поддерживающий операции добавления пары, а также поиска и удаления пары по ключу.

Т9: Массив элементов произвольного типа с индексом произвольного типа.
Данный класс позволяет создавать массив элементов типа variant с индексом типа variant. Нужен для реализации запросов по разным базам (обеспечение открытости системы).
Для него действуют свойства класса ПользовательскийОбъект / UserObject.
Используется для создания массива НестабильныеРеквизиты (МашинаРеквизитов.Реквизиты.Атрибуты.Поток), хранилища прав доступа.

Свойства:

Duplicates может принимать одно из трех значений: dupIgnore (не добавлять дубликаты), dupAccept (добавлять дубликаты), dupError (при попытке добавить дубликат вызывается сообщение об ошибке). По умолчанию стоит dupAccept.

CreateAs;

Count: Integer; - количество элементов в массиве.
Clear; - очистить массив.
Sort; - сортировать массив.
Sorted: Logical; - возвращает статус массива: отсортирован или нет.

Add (aIndex: Variant; aValue: Variant); - добавить элемент в массив без сортировки. Меняет статус массива на "не сортирован".

AddSorted;

AddGroupSorted (const AGroup: Variant[2]); - добавляет в ассоциативный массив группу значений. Соблюдает сортировку.

GetIndexByNumber (Number: Integer): Variant; - возвращает индекс по номеру элемента (комбинации индекс-значение).

GetValueByNumber (Number: Integer): Variant; - возвращает значение по номеру элемента (комбинации индекс-значение).

GetValue (Index: Variant): Variant; - возвращает значение по индексу, стоящему с ним в паре.

GetValueSafe; - - делает тоже самое, что и GetValue, но значение возвращает через var-параметр, а сама возвращает статус "найдено".

Value(const aIndex: Variant; const aValue: Variant); - то же, что и GetValue + выдает предупреждение, если элемент не найден.

SetValue(const aIndex: Variant; const aValue: Variant); - по индексу (aIndex) добавляет значение (aValue).

SetValueEx;

DelValue(const aIndex: Variant); - удаляет строку по индексу.

Пример

Func Create: Реквизиты.Атрибуты.Поток;
  Result = inherited Create; --создаём объект с помощью ядра
  Result.НестабильныеРеквизиты = АссоциативныйМассив.Create;
  Result.НестабильныеРеквизиты.Sort;
  Result.НестабильныеРеквизиты.Duplicates = Result.НестабильныеРеквизиты.dupIgnord; --не добавлять дубликаты
Проект: 
Ключевые слова: