Здесь показаны различия между двумя версиями данной страницы.
| Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия | ||
|
help:strings [2024/10/14 10:51] aleks_versus обновление 5.9.0 |
help:strings [2025/09/28 13:41] (текущий) aleks_versus [Сравнение строк] |
||
|---|---|---|---|
| Строка 74: | Строка 74: | ||
| Для более полного понимания того, как можно экранировать кавычки в **QSP**, рассмотрим гиперссылку, в которую встроен переход на локацию. Вот как эта ссылка будет выглядеть на экране при отключенном режиме распознавания HTML: | Для более полного понимания того, как можно экранировать кавычки в **QSP**, рассмотрим гиперссылку, в которую встроен переход на локацию. Вот как эта ссылка будет выглядеть на экране при отключенном режиме распознавания HTML: | ||
| - | <code html5> | + | <sxh html> |
| <a href="EXEC: goto 'Верстак' " class="plain">Верстак</a> | <a href="EXEC: goto 'Верстак' " class="plain">Верстак</a> | ||
| </sxh> | </sxh> | ||
| Строка 90: | Строка 90: | ||
| </sxh> | </sxh> | ||
| - | Есть способ записи, когда нам не приходится экарнировать кавычки вообще. Мы просто заключаем ссылку в фигурные скобки (не рекомендуется): | + | Есть способ записи, когда нам не приходится экранировать кавычки вообще. Мы просто заключаем ссылку в фигурные скобки (не рекомендуется): |
| <sxh qsp> | <sxh qsp> | ||
| Строка 123: | Строка 123: | ||
| 'b' > 'ab' &! 'b' > 'a' | 'b' > 'ab' &! 'b' > 'a' | ||
| 'ab' > 'a' &! 'b' > '' | 'ab' > 'a' &! 'b' > '' | ||
| + | </sxh> | ||
| + | |||
| + | Если строки сравниваются с числами, плеер пытается привести строку к числу и затем сравнить два числа. Если привести строку к числу не получается, плеер приводит число к строке и сравнивает две строки. Поэтому результаты могут отличаться в разных случаях: | ||
| + | |||
| + | <sxh qsp> | ||
| + | ! это не валидный код QSP | ||
| + | ! а табличка сравнения | ||
| + | 3 < '12' &! '12' приводится к числу, и 12 > 3 | ||
| + | '3' > '12' &! сравниваются две строки, а '3' > '1' | ||
| + | 3 > '12a' &! '12a' не приводится к числу, сравниваются строки | ||
| </sxh> | </sxh> | ||
| Строка 192: | Строка 202: | ||
| *pl len('Зелёные яблоки') &! на экране будет число 14 | *pl len('Зелёные яблоки') &! на экране будет число 14 | ||
| </sxh> | </sxh> | ||
| - | * '%%$MID([$стр],[#начало],[#длина])%%'' - вырезает из строки ''%%[$стр]%%'' строку, которая начинается с символа номер ''%%[#начало]%%'' и имеет длину ''%%[#длина]%%''. Нумерация символов в строке ведётся с **1**. | + | * ''**$MID(**[$стр],[#начало],[#длина]**)**'' - вырезает из строки ''%%[$стр]%%'' строку, которая начинается с символа номер ''%%[#начало]%%'' и имеет длину ''%%[#длина]%%''. Нумерация символов в строке ведётся с **1**. |
| * Параметр ''%%[#длина]%%'' может отсутствовать, при этом вырезается вся строка, начиная с символа ''%%[#начало]%%''. | * Параметр ''%%[#длина]%%'' может отсутствовать, при этом вырезается вся строка, начиная с символа ''%%[#начало]%%''. | ||
| * Если ''%%[#начало]%%'' превышает длину строки, функция возвращает пустую строку. | * Если ''%%[#начало]%%'' превышает длину строки, функция возвращает пустую строку. | ||
| Строка 210: | Строка 220: | ||
| $TRIM(' TRIM TEST ') &! 'TRIM TEST' | $TRIM(' TRIM TEST ') &! 'TRIM TEST' | ||
| </sxh> | </sxh> | ||
| - | * ''%%$REPLACE([$стр],[$поиск],[$замена])%%'' - заменяет в строке ''%%[$стр]%%'' все вхождения строки ''%%[$поиск]%%'' строкой ''%%[$замена]%%''. | + | * ''**$REPLACE(**[$стр],[$поиск],[$замена],[#количество_замен]**)**'' - заменяет в строке ''%%[$стр]%%'' несколько вхождений строки ''%%[$поиск]%%'' строкой ''%%[$замена]%%''. Замена производится слева-направо и только для неперескающихся вхождений. |
| - | * Параметр ''%%[$замена]%%'' может отсутствовать и принимается равным пустой строке. | + | * Параметр ''[#количество_замен]'' показывает, сколько вхождений должно быть заменено. Если параметр не указан, производится замена всех вхождений. |
| + | * Параметр ''%%[$замена]%%'' может отсутствовать, тогда он принимается равным пустой строке. | ||
| * Примеры: <sxh qsp> | * Примеры: <sxh qsp> | ||
| - | $REPLACE('test', '12', '4') &! 'test' | + | $REPLACE('test', '12', '4') &! 'test' |
| $REPLACE('test', 'e', 's') &! 'tsst' | $REPLACE('test', 'e', 's') &! 'tsst' | ||
| $REPLACE('test', 't', '34') &! '34es34' | $REPLACE('test', 't', '34') &! '34es34' | ||
| $REPLACE('test', 't') &! 'es' | $REPLACE('test', 't') &! 'es' | ||
| + | |||
| + | $REPLACE('test', 't', 'qu', 1) &! 'quest' | ||
| + | $REPLACE('test my test', 't', 'q', 3) &! 'qesq my qest' | ||
| </sxh> | </sxh> | ||
| * ''%%INSTR([$строка],[$поиск],[#начало])%%'' - возвращает номер позиции символа, с которого начинается вхождение строки ''%%[$поиск]%%'' в строку ''%%[$строка]%%'' (или **0**, если вхождения нет). Поиск начинается с символа номер ''%%[#начало]%%''. | * ''%%INSTR([$строка],[$поиск],[#начало])%%'' - возвращает номер позиции символа, с которого начинается вхождение строки ''%%[$поиск]%%'' в строку ''%%[$строка]%%'' (или **0**, если вхождения нет). Поиск начинается с символа номер ''%%[#начало]%%''. | ||
| Строка 226: | Строка 240: | ||
| INSTR('abcdef','abc') &! 1 | INSTR('abcdef','abc') &! 1 | ||
| </sxh> | </sxh> | ||
| - | * <p>''%%ISNUM([$строка])%%'' - функция проверяет, является ли строка ''%%[$строка]%%'' числом. Функция возвращает ''%%0%%'' (ложь) или ''%%1%%'' (истина). <sxh qsp> | + | * ''%%ISNUM([$строка])%%'' - функция проверяет, является ли строка ''%%[$строка]%%'' числом. Функция возвращает ''%%0%%'' (ложь) или ''%%1%%'' (истина). <sxh qsp> |
| ISNUM(' 9999 ') &! 1 | ISNUM(' 9999 ') &! 1 | ||
| ISNUM(' -888') &! 1 | ISNUM(' -888') &! 1 | ||