API GetWord - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

GetWord

Оглавление · Алфавитный указатель · BASIC built-ins

ClassicUO • Runtime API

Выделяет слово по индексу после разделения строки.

Точный синтаксис

GetWord(value:String, wordIndex:Integer) -> String
GetWord(value:String, wordIndex:Integer, delimiter:String) -> String

Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.

Параметры

  • value — Исходный текст.
  • wordIndex — Индекс слова от 0. Отрицательный или слишком большой индекс даёт пустую строку.
  • delimiter — Необязательная строка-разделитель. Без аргумента, пустая строка и один пробел означают любые Unicode whitespace. Иная строка — точная последовательность целиком. Пустые части между разделителями удаляются.

Возвращает

String — выбранное непустое слово, либо пустая строка при отсутствии слова с таким индексом. Это не количество слов. Индекс начинается с 0, в отличие от позиции InStr.

Поведение

  • Выполняется локально и не обращается к игровому серверу. Исходная строка не изменяется: результат нужно сохранить или передать дальше.
  • Позиции и длины строк считаются в единицах UTF-16. Символ за пределами BMP, например emoji, занимает две единицы. Это не количество байтов UTF-8.

Примеры

Пример 1. Второе слово

# Второе слово
#
# Выделяет слово по индексу после разделения строки.
#
# String — выбранное непустое слово, либо пустая строка при отсутствии слова с таким индексом.
# Это не количество слов. Индекс начинается с 0, в отличие от позиции InStr.

SUB Main()
    # wordIndex=1 выбирает второе слово; delimiter отсутствует.
    # Ожидаемый результат: строка iron. В result сохраняется результат выражения; Print только
    # показывает его.

    VAR result = GetWord('ore iron gold',1)
    UO.Print(CStr(result))
END SUB

Разбор параметров и выполнения:

  • wordIndex=1 выбирает второе слово; delimiter отсутствует.
  • Ожидаемый результат: строка iron. В result сохраняется результат выражения; Print только показывает его.

Пример 2. Многосимвольный разделитель

# Многосимвольный разделитель
#
# Выделяет слово по индексу после разделения строки.
#
# String — выбранное непустое слово, либо пустая строка при отсутствии слова с таким индексом.
# Это не количество слов. Индекс начинается с 0, в отличие от позиции InStr.

SUB Main()
    # delimiter="::"; пустая часть между повторными разделителями удаляется. Индекс 2 выбирает
    # третье слово.
    # Ожидаемый результат: строка c. В result сохраняется результат выражения; Print только
    # показывает его.

    VAR result = GetWord('a::b::::c',2,'::')
    UO.Print(CStr(result))
END SUB

Разбор параметров и выполнения:

  • delimiter="::"; пустая часть между повторными разделителями удаляется. Индекс 2 выбирает третье слово.
  • Ожидаемый результат: строка c. В result сохраняется результат выражения; Print только показывает его.

Пример 3. Слово отсутствует

# Слово отсутствует
#
# Выделяет слово по индексу после разделения строки.
#
# String — выбранное непустое слово, либо пустая строка при отсутствии слова с таким индексом.
# Это не количество слов. Индекс начинается с 0, в отличие от позиции InStr.

SUB Main()
    # У текста только два слова с индексами 0 и 1.
    # Ожидаемый результат: пустая строка. В result сохраняется результат выражения; Print только
    # показывает его.

    VAR result = GetWord('one two',10)
    UO.Print(CStr(result))
END SUB

Разбор параметров и выполнения:

  • У текста только два слова с индексами 0 и 1.
  • Ожидаемый результат: пустая строка. В result сохраняется результат выражения; Print только показывает его.