Skip to content

API StrComp fr

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

Compare exactement des noms ou commandes et détermine leur ordre.

Syntaxe exacte

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

Paramètres

  • left — String de gauche.
  • right — String de droite ; deux arguments requis, pas de troisième mode.

Retour

Integer -1/0/1 : avant/égal/après, ordre ordinal UTF-16 sensible à la casse. Pas un Boolean : l’égalité exige result = 0 ; If StrComp(...) est vrai pour des textes différents.

Comportement

  • Traitement local de données d’exemple avec valeur de retour. Aucun message envoyé, arrêt de script, déplacement d’objet ni contact serveur.
  • Indépendant de la langue, sans tri linguistique. Pour ignorer la casse, appliquer explicitement LCase/UCase. Les entrées ne changent pas.

Fonctions internes : de l’appel au résultat

String.Compare avec Ordinal, puis Math.Sign réduit le résultat à -1, 0 ou 1.

1. BasicStrComp / String.Compare / Math.Sign

String.Compare avec Ordinal, puis Math.Sign réduit le résultat à -1, 0 ou 1.

Integer -1/0/1 : avant/égal/après, ordre ordinal UTF-16 sensible à la casse. Pas un Boolean : l’égalité exige result = 0 ; If StrComp(...) est vrai pour des textes différents.

Source du projet: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; fonction BasicStrComp / String.Compare / Math.Sign.

Indépendant de la langue, sans tri linguistique. Pour ignorer la casse, appliquer explicitement LCase/UCase. Les entrées ne changent pas.

Exemples

Reconnaître une commande

# Reconnaître une commande
#
# Compare exactement des noms ou commandes et détermine leur ordre.
#
# Integer -1/0/1 : avant/égal/après, ordre ordinal UTF-16 sensible à la casse. Pas un Boolean :
# l’égalité exige result = 0 ; If StrComp(...) est vrai pour des textes différents.

SUB Main()
    # Trim/LCase changent " STOP " en stop ; la comparaison à 0 retourne True (1), sans arrêter de
    # script.
    # Traitement local de données d’exemple avec valeur de retour. Aucun message envoyé, arrêt de
    # script, déplacement d’objet ni contact serveur.

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

Explication des paramètres et du déroulement:

  • Trim/LCase changent " STOP " en stop ; la comparaison à 0 retourne True (1), sans arrêter de script.
  • Traitement local de données d’exemple avec valeur de retour. Aucun message envoyé, arrêt de script, déplacement d’objet ni contact serveur.

Ordonner deux noms

# Ordonner deux noms
#
# Compare exactement des noms ou commandes et détermine leur ordre.
#
# Integer -1/0/1 : avant/égal/après, ordre ordinal UTF-16 sensible à la casse. Pas un Boolean :
# l’égalité exige result = 0 ; If StrComp(...) est vrai pour des textes différents.

SUB Main()
    # zinc vient après iron ; échanger les variables donne iron|zinc.
    # Traitement local de données d’exemple avec valeur de retour. Aucun message envoyé, arrêt de
    # script, déplacement d’objet ni contact serveur.

    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

Explication des paramètres et du déroulement:

  • zinc vient après iron ; échanger les variables donne iron|zinc.
  • Traitement local de données d’exemple avec valeur de retour. Aucun message envoyé, arrêt de script, déplacement d’objet ni contact serveur.

Trouver un nom exact

# Trouver un nom exact
#
# Compare exactement des noms ou commandes et détermine leur ordre.
#
# Integer -1/0/1 : avant/égal/après, ordre ordinal UTF-16 sensible à la casse. Pas un Boolean :
# l’égalité exige result = 0 ; If StrComp(...) est vrai pour des textes différents.

SUB Main()
    # ContainsExact parcourt la liste séparée par |. Ore correspond exactement : True (1) ; ore ne
    # correspondrait pas.
    # Traitement local de données d’exemple avec valeur de retour. Aucun message envoyé, arrêt de
    # script, déplacement d’objet ni contact serveur.

    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

Explication des paramètres et du déroulement:

  • ContainsExact parcourt la liste séparée par |. Ore correspond exactement : True (1) ; ore ne correspondrait pas.
  • Traitement local de données d’exemple avec valeur de retour. Aucun message envoyé, arrêt de script, déplacement d’objet ni contact serveur.

Clone this wiki locally