Задача: найти вхождение в строку IncludeCode. Для примера шаблон = '%60%'
Код: Выделить всё
const
...
IncludeCode = '07,08,10,15,20,21,23,24,25,26,29,41,60,62,76,79,84,91,94,97,98,99';
...
cmInit:
{
Message(IncludeCode like '%60%')
}
...
v.5.4.30
Модераторы: m0p3e, edward_K, Модераторы
Код: Выделить всё
const
...
IncludeCode = '07,08,10,15,20,21,23,24,25,26,29,41,60,62,76,79,84,91,94,97,98,99';
...
cmInit:
{
Message(IncludeCode like '%60%')
}
...
Как раз сейчас нашел Pos и InStr (одинаковые функции но с разными именамиВсё правильно делаете, просто LIKE своеобразно работает. Шестерка первый раз встречается в числе 26, предикат на нем и спотыкается. Уберёте первую шестерку - получите TRUE. Надежнее пользоваться функцией POS.
Код: Выделить всё
function MatchesMask(Filename: string, Mask: string): Boolean; external 'G_TXO.DLL';
const
...
IncludeCode = '07,08,10,15,20,21,23,24,25,26,29,41,60,62,76,79,84,91,94,97,98,99';
...
cmInit:
{
Message(MatchesMask(IncludeCode, '*60*');
}
Код: Выделить всё
3.4.5. Прочие полезные функции
3.4.5.1. Проверить, удовлетворяет ли строка (Str) маске (Mask)
function MatchesMask(Str, Mask : string): Boolean;
Маски могут включать обычные символы (буквы и цифры), а также специальные выражения:
* или # любое количество символов;
? один любой символ;
[cx~z] один любой символ из перечисленных в квадратных скобках;
[!cx~z] один любой символ кроме тех, что указаны в квадратных скобках.
Допускаются и отдельные символы, и их диапазоны. Диапазоны обозначаются символом '~'.
Например, коды объектов 1010, 101000, 101001, 1010A, 1010B могут быть выбраны с помощью маски 1010#.
Маска #1010# выберет и 1010, и A1010A, и B1010B.
Маска [ABX~Z]#1010 может выбрать и Alpha1010, и Beta1010, и Xsystem1010, и Ysystem1010, и Zsystem1010.
В фильтрах можно задать несколько масок, разделенных точкой с запятой. Например, чтобы выбрать все объекты серии 1010, 1020 и 1030, вы можете ввести маску #1010#;#1020#;#1030#.
В фильтрах также можно указать маски исключения. Маска исключения — это одна или несколько масок, которым не должны соответствовать коды требуемых объектов, она отделяется от основной маски символом | (вертикальная черта).
Примеры использования масок исключения:
1. 1010#
Все объекты с кодами, начинающимися на 1010.
2. #|1010#;1020#
Все объекты, кроме тех, у которых коды начинаются на 1010 и 1020.
3. #|
Все объекты, кроме тех, у которых код пустой.
4. #|1010#|1020#
Ошибка — спецсимвол | не может встречаться более одного раза.
5. |1010#
Обрабатывается как #|1010#
Через точку с запятой перечисляются маски, а при помощи символа '|' маски-включения отделяются от масок-исключения.
Более подробное описание синтаксиса маски смотрите в документации по модулю ХозОперации.