GlobalStringsFind
| 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;
//СпДубли -- список найденных дублей для вывода