Skip to content

API StrComp de

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

Vergleicht Namen oder Befehle auf genaue Gleichheit und feste Reihenfolge.

Genaue Syntax

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

Parameter

  • left — Linker String.
  • right — Rechter String; beide erforderlich, kein dritter Vergleichsmodus.

Rückgabewert

Integer -1/0/1 für davor/gleich/danach, ordinal nach UTF-16 und unter Beachtung der Großschreibung. Kein Boolean: Gleichheit verlangt result = 0; If StrComp(...) ist bei Ungleichheit wahr.

Verhalten

  • Lokale Verarbeitung von Beispieldaten mit Rückgabewert. Es werden weder Chatnachrichten gesendet noch Skripte gestoppt, Gegenstände bewegt oder Server angesprochen.
  • Sprachunabhängig, keine sprachliche Sortierung. Für Vergleiche ohne Großschreibung ausdrücklich LCase/UCase verwenden. Eingaben bleiben unverändert.

Interne Funktionen: vom Aufruf zum Ergebnis

String.Compare mit Ordinal, danach Math.Sign für -1, 0 oder 1.

1. BasicStrComp / String.Compare / Math.Sign

String.Compare mit Ordinal, danach Math.Sign für -1, 0 oder 1.

Integer -1/0/1 für davor/gleich/danach, ordinal nach UTF-16 und unter Beachtung der Großschreibung. Kein Boolean: Gleichheit verlangt result = 0; If StrComp(...) ist bei Ungleichheit wahr.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; Funktion BasicStrComp / String.Compare / Math.Sign.

Sprachunabhängig, keine sprachliche Sortierung. Für Vergleiche ohne Großschreibung ausdrücklich LCase/UCase verwenden. Eingaben bleiben unverändert.

Beispiele

Befehl erkennen

# Befehl erkennen
#
# Vergleicht Namen oder Befehle auf genaue Gleichheit und feste Reihenfolge.
#
# Integer -1/0/1 für davor/gleich/danach, ordinal nach UTF-16 und unter Beachtung der
# Großschreibung. Kein Boolean: Gleichheit verlangt result = 0; If StrComp(...) ist bei
# Ungleichheit wahr.

SUB Main()
    # Trim/LCase machen " STOP " zu stop; Vergleich mit 0 liefert True (1), ohne ein Skript zu
    # stoppen.
    # Lokale Verarbeitung von Beispieldaten mit Rückgabewert. Es werden weder Chatnachrichten
    # gesendet noch Skripte gestoppt, Gegenstände bewegt oder Server angesprochen.

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

Erläuterung der Parameter und Ausführung:

  • Trim/LCase machen " STOP " zu stop; Vergleich mit 0 liefert True (1), ohne ein Skript zu stoppen.
  • Lokale Verarbeitung von Beispieldaten mit Rückgabewert. Es werden weder Chatnachrichten gesendet noch Skripte gestoppt, Gegenstände bewegt oder Server angesprochen.

Zwei Namen ordnen

# Zwei Namen ordnen
#
# Vergleicht Namen oder Befehle auf genaue Gleichheit und feste Reihenfolge.
#
# Integer -1/0/1 für davor/gleich/danach, ordinal nach UTF-16 und unter Beachtung der
# Großschreibung. Kein Boolean: Gleichheit verlangt result = 0; If StrComp(...) ist bei
# Ungleichheit wahr.

SUB Main()
    # zinc folgt auf iron; nach dem Tausch lautet das Ergebnis iron|zinc.
    # Lokale Verarbeitung von Beispieldaten mit Rückgabewert. Es werden weder Chatnachrichten
    # gesendet noch Skripte gestoppt, Gegenstände bewegt oder Server angesprochen.

    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

Erläuterung der Parameter und Ausführung:

  • zinc folgt auf iron; nach dem Tausch lautet das Ergebnis iron|zinc.
  • Lokale Verarbeitung von Beispieldaten mit Rückgabewert. Es werden weder Chatnachrichten gesendet noch Skripte gestoppt, Gegenstände bewegt oder Server angesprochen.

Erlaubten Namen exakt finden

# Erlaubten Namen exakt finden
#
# Vergleicht Namen oder Befehle auf genaue Gleichheit und feste Reihenfolge.
#
# Integer -1/0/1 für davor/gleich/danach, ordinal nach UTF-16 und unter Beachtung der
# Großschreibung. Kein Boolean: Gleichheit verlangt result = 0; If StrComp(...) ist bei
# Ungleichheit wahr.

SUB Main()
    # ContainsExact zerlegt die Liste an |. Ore wird exakt gefunden: True (1); ore wäre nicht gleich
    # Ore.
    # Lokale Verarbeitung von Beispieldaten mit Rückgabewert. Es werden weder Chatnachrichten
    # gesendet noch Skripte gestoppt, Gegenstände bewegt oder Server angesprochen.

    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

Erläuterung der Parameter und Ausführung:

  • ContainsExact zerlegt die Liste an |. Ore wird exakt gefunden: True (1); ore wäre nicht gleich Ore.
  • Lokale Verarbeitung von Beispieldaten mit Rückgabewert. Es werden weder Chatnachrichten gesendet noch Skripte gestoppt, Gegenstände bewegt oder Server angesprochen.

Clone this wiki locally