Здесь показаны различия между двумя версиями данной страницы.
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 |