GlobalStringsAdd

From SunFlurry wiki
Jump to: navigation, search
  GlobalStringsAdd (Глобальные строки-массивы)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Неверные агрументы, системная ошибка сервера, не найден массив.
Визуальность:Нет

Функция добавляет произвольное количество строк из списка или одной строки с разделителями в массив, заданный по его наименованию или идентификатору. Режим функции задает условие добавления, а также формат ответа (последний может быть как числовым, так и в виде списка).

Синтаксис

GlobalStringsAdd(<Имя или идентификатор массива (STRING,INT)>,<Значения (STRING,LIST)>,<Режим (INT)>=0):<Статус или результат (INT,LIST)>

Аргументы

  • <Имя или идентификатор массива (STRING,INT)> - Параметр задает имя массива (строка) или идентификатор массива (число) для добавления значений.
  • <Значения (STRING,LIST)> - Значения для добавления могут быть в списке или в строке. Каждое значение может содержать префикс, отделенный от основной строки разделителем префикса (см. GlobalStringsHeapsAdd). При добавлении из строки, каждое значение (с префиксом) должно быть разделено разделителем значений (см. GlobalStringsHeapsAdd).
  • <Режим (INT)> - (необязательный аргумент) Аргумент задает режим добавления и является битовой маской. На данный момент доступны следующие биты:
    • бит 0 -- если установлен, функция возвращает список уже присутствующих (из добавляемых) в массиве значений, иначе статус будет числом (см. ниже).
    • бит 1 -- если установлен, функция добавляет те значения, которых нет, игнорируя те, что уже присутствуют в массиве. Если сброшен (по умолчанию), функция не изменяет массив, если по крайней мере одно из добавляемых значений уже содержится в массиве.
    • бит 2 -- если установлен, функция обновит префиксы для значений, которые уже присутствовали в массиве (в не зависимости от того, установлен ли бит 1 или нет).
    • бит 3 -- если установлен (и не установлен бит 0), функция возвращает только 0 (все значения новые) или 1 (некоторые значения присутствовали в массиве). Вместо статуса 2 (все значения уже присутствовали в массиве) также возвращается число 1, что позволяет выполнить операцию немного быстрее.

Возвращаемое значение

Если бит 0 аргумента режима сброшен (по умолчанию), возвращает следующее числовое значение: 0 -- все значения новые и были добавлены в массив, 1 -- некоторые значения присутствовали в массиве (по умолчанию, в массив ничего не добавлено, но при установке бита 1 аргумента режима, отсутствующие значения все-таки были добавлены, также в зависимости от бита 2 режима, в массиве могли быть обновлены префиксы найденных значений), 2 -- все значения уже присутствали в массиве (в зависимости от бита 2 режима, в массиве могли быть обновлены префиксы значений). Если бит 0 аргумента режима установлен, функция возвращает список.

Примеры

Массив:=GlobalStringsHeapsFind("MRK"+FormatDate(Date(),"YYYYmmdd"));

...
//Находится строка добавления СтрНовыеМарки, значения разделены заранее заданной строкой-разделителем.
...

If Массив>0 Then
  GlobalStringsAdd(Массив,СтрНовыеМарки,6);//форсированное добавление, обновление префиксов, если они изменились
EndIf;