GlobalStringsFind

From SunFlurry wiki
Revision as of 11:59, 1 April 2026 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  GlobalStringsAdd (Глобальные строки-массивы)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Неверные агрументы, системная ошибка сервера, не найден массив.
Визуальность:Нет

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

Синтаксис

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

Аргументы

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

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

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

Примеры

//СтрКоды -- значения для поиска дублей
//СпМассивыМарок -- список массивов, где производится поиск дублей
СпДубли:=List.Create();
For i:=1 To СпМассивыМарок.Size() Do
  Try
    //Возвратить список и добавить его содержимое к списку СпДубли
    GlobalStringsFind(СпМассивыМарок[i],СтрКоды,1).CopyTo(СпДубли);
  Except
    //Возможно, один из старых массивов был удален до этой операции другим пользователем
  EndTry;
EndDo;
//СпДубли -- список найденных дублей для вывода