API mid - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
mid
Оглавление · Алфавитный указатель · BASIC built-ins
ClassicUO • Runtime API
Выделяет часть строки; у двух форм разное начало отсчёта.
Точный синтаксис
mid(value:String, start:Integer) -> String
mid(str:String, start:Integer, length:Integer) -> String
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
value / str— Исходная строка.start— В Mid(value,start) — позиция от 1; start<=1 начинает с первого символа. В Mid(str,start,length) — индекс от 0; отрицательный индекс даёт пустую строку.length— Только для формы из трёх аргументов: число единиц UTF-16. <=0 даёт пустую строку, излишек ограничивается остатком текста.
Возвращает
String — часть текста. Двухаргументная форма возвращает остаток до конца, трёхаргументная — не более length единиц. За концом строки возвращается пустая строка. Удаление третьего аргумента меняет начало отсчёта индекса.
Поведение
- Выполняется локально и не обращается к игровому серверу. Исходная строка не изменяется: результат нужно сохранить или передать дальше.
- Позиции и длины строк считаются в единицах UTF-16. Символ за пределами BMP, например emoji, занимает две единицы. Это не количество байтов UTF-8.
Примеры
Пример 1. Остаток со второй позиции
# Остаток со второй позиции
#
# Выделяет часть строки; у двух форм разное начало отсчёта.
#
# String — часть текста. Двухаргументная форма возвращает остаток до конца, трёхаргументная — не
# более length единиц. За концом строки возвращается пустая строка. Удаление третьего аргумента
# меняет начало отсчёта индекса.
SUB Main()
# Два аргумента: start=2 — второй символ, индекс от 1.
# Ожидаемый результат: строка bcdef. В result сохраняется результат выражения; Print только
# показывает его.
VAR result = Mid('abcdef', 2)
UO.Print(CStr(result))
END SUB
Разбор параметров и выполнения:
- Два аргумента: start=2 — второй символ, индекс от 1.
- Ожидаемый результат: строка bcdef. В result сохраняется результат выражения; Print только показывает его.
Пример 2. Три символа с индекса 2
# Три символа с индекса 2
#
# Выделяет часть строки; у двух форм разное начало отсчёта.
#
# String — часть текста. Двухаргументная форма возвращает остаток до конца, трёхаргументная — не
# более length единиц. За концом строки возвращается пустая строка. Удаление третьего аргумента
# меняет начало отсчёта индекса.
SUB Main()
# Три аргумента: start=2 — третий символ, length=3.
# Ожидаемый результат: строка cde. В result сохраняется результат выражения; Print только
# показывает его.
VAR result = Mid('abcdef', 2, 3)
UO.Print(CStr(result))
END SUB
Разбор параметров и выполнения:
- Три аргумента: start=2 — третий символ, length=3.
- Ожидаемый результат: строка cde. В result сохраняется результат выражения; Print только показывает его.
Пример 3. Первый символ в совместимой форме
# Первый символ в совместимой форме
#
# Выделяет часть строки; у двух форм разное начало отсчёта.
#
# String — часть текста. Двухаргументная форма возвращает остаток до конца, трёхаргументная — не
# более length единиц. За концом строки возвращается пустая строка. Удаление третьего аргумента
# меняет начало отсчёта индекса.
SUB Main()
# Трёхаргументная форма использует индекс 0; длина 1.
# Ожидаемый результат: строка a. В result сохраняется результат выражения; Print только
# показывает его.
VAR result = Mid('abcdef', 0, 1)
UO.Print(CStr(result))
END SUB
Разбор параметров и выполнения:
- Трёхаргументная форма использует индекс 0; длина 1.
- Ожидаемый результат: строка a. В result сохраняется результат выражения; Print только показывает его.