Skip to content

API StrComp uk

Codex edited this page Oct 3, 2026 · 1 revision

StrComp

API · BASIC

Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

ASC · Chr · len · StrComp

ClassicUO • Runtime API

Перевіряє точну рівність і порядок назв або команд.

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

StrComp(left:String, right:String) -> Integer

Параметри

  • left — Ліва String.
  • right — Права String; обидва аргументи обов’язкові, третього режиму немає.

Повертає

Integer -1/0/1: раніше/рівні/пізніше, порядково за UTF-16 з урахуванням регістру. Це не Boolean: рівність — result = 0; If StrComp(...) істинний для різних рядків.

Поведінка

  • Виконується локально. Приклади повертають результат обробки заданих даних, не надсилають чат, не зупиняють скрипти та не звертаються до сервера.
  • Не залежить від мови та не виконує мовного сортування. Для ігнорування регістру явно використовуйте LCase/UCase; аргументи не змінюються.

Внутрішні функції: від виклику до результату

String.Compare у режимі Ordinal, потім Math.Sign повертає -1, 0 або 1.

1. BasicStrComp / String.Compare / Math.Sign

String.Compare у режимі Ordinal, потім Math.Sign повертає -1, 0 або 1.

Integer -1/0/1: раніше/рівні/пізніше, порядково за UTF-16 з урахуванням регістру. Це не Boolean: рівність — result = 0; If StrComp(...) істинний для різних рядків.

Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; функція BasicStrComp / String.Compare / Math.Sign.

Не залежить від мови та не виконує мовного сортування. Для ігнорування регістру явно використовуйте LCase/UCase; аргументи не змінюються.

Приклади

Розпізнати команду

# Розпізнати команду
#
# Перевіряє точну рівність і порядок назв або команд.
#
# Integer -1/0/1: раніше/рівні/пізніше, порядково за UTF-16 з урахуванням регістру. Це не
# Boolean: рівність — result = 0; If StrComp(...) істинний для різних рядків.

SUB Main()
    # Trim/LCase перетворюють " STOP " на stop; порівняння з 0 дає True (1), не зупиняючи скрипт.
    # Виконується локально. Приклади повертають результат обробки заданих даних, не надсилають чат,
    # не зупиняють скрипти та не звертаються до сервера.

    Dim action = LCase(Trim(" STOP "))
    If StrComp(action, "stop") = 0 Then
        Return True
    End If
    Return False
END SUB

Пояснення параметрів і виконання:

  • Trim/LCase перетворюють " STOP " на stop; порівняння з 0 дає True (1), не зупиняючи скрипт.
  • Виконується локально. Приклади повертають результат обробки заданих даних, не надсилають чат, не зупиняють скрипти та не звертаються до сервера.

Впорядкувати дві назви

# Впорядкувати дві назви
#
# Перевіряє точну рівність і порядок назв або команд.
#
# Integer -1/0/1: раніше/рівні/пізніше, порядково за UTF-16 з урахуванням регістру. Це не
# Boolean: рівність — result = 0; If StrComp(...) істинний для різних рядків.

SUB Main()
    # zinc іде після iron, тому змінні міняються місцями; результат iron|zinc.
    # Виконується локально. Приклади повертають результат обробки заданих даних, не надсилають чат,
    # не зупиняють скрипти та не звертаються до сервера.

    Dim first = "zinc"
    Dim second = "iron"
    If StrComp(first, second) > 0 Then
        Dim saved = first
        first = second
        second = saved
    End If
    Return first & "|" & second
END SUB

Пояснення параметрів і виконання:

  • zinc іде після iron, тому змінні міняються місцями; результат iron|zinc.
  • Виконується локально. Приклади повертають результат обробки заданих даних, не надсилають чат, не зупиняють скрипти та не звертаються до сервера.

Точне дозволене ім’я

# Точне дозволене ім’я
#
# Перевіряє точну рівність і порядок назв або команд.
#
# Integer -1/0/1: раніше/рівні/пізніше, порядково за UTF-16 з урахуванням регістру. Це не
# Boolean: рівність — result = 0; If StrComp(...) істинний для різних рядків.

SUB Main()
    # ContainsExact перебирає список через |. Ore знайдено точно, результат True (1); ore не
    # дорівнює Ore.
    # Виконується локально. Приклади повертають результат обробки заданих даних, не надсилають чат,
    # не зупиняють скрипти та не звертаються до сервера.

    Return ContainsExact("ore|Ore|wood", "Ore")
END SUB

Function ContainsExact(names, wanted)
    For index = 0 To GetWordCount(names, "|") - 1
        If StrComp(GetWord(names, index, "|"), wanted) = 0 Then
            Return True
        End If
    Next
    Return False
End Function

Пояснення параметрів і виконання:

  • ContainsExact перебирає список через |. Ore знайдено точно, результат True (1); ore не дорівнює Ore.
  • Виконується локально. Приклади повертають результат обробки заданих даних, не надсилають чат, не зупиняють скрипти та не звертаються до сервера.

Clone this wiki locally