Skip to content

API GetArrayLength fr

Codex edited this page Oct 4, 2026 · 1 revision

GetArrayLength

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

API · Basic

ClassicUO • Runtime API

Compte les cases directes d’un Array pour parcourir ses indices sans les dépasser.

Syntaxe exacte

GetArrayLength(arg:Any) -> Any

Paramètres

  • arg — Toute valeur BASIC. Array donne sa Length externe ; String, nombre, Object et Unit donnent 0.

Retour

Integer >= 0. Tableau vide et autre type donnent 0 : ce n’est pas une validation de type. Un nombre, pas un booléen ni le dernier indice.

Comportement

  • Requête locale sans serveur, déplacement ni modification du tableau. Les exemples utilisent des données fixes, pas l’inventaire réel.
  • Vérifie le type et lit Array.Length sans parcours ni somme. DIM values(2) crée trois cases 0..2, même non initialisées.
  • Pas de comptage récursif. String utilise Len ; List/Dictionary leur Count. UO.GetArrayLength est le nom compatible de la même requête locale.

Fonctions internes : de l’appel au résultat

Vérifie le type et lit Array.Length sans parcours ni somme. DIM values(2) crée trois cases 0..2, même non initialisées.

1. GetArrayLength

Vérifie le type et lit Array.Length sans parcours ni somme. DIM values(2) crée trois cases 0..2, même non initialisées.

Integer >= 0. Tableau vide et autre type donnent 0 : ce n’est pas une validation de type. Un nombre, pas un booléen ni le dernier indice.

Source du projet: external/InjectionScript/src/InjectionScript/Runtime/InternalSubrutines.cs; fonction GetArrayLength.

Pas de comptage récursif. String utilise Len ; List/Dictionary leur Count. UO.GetArrayLength est le nom compatible de la même requête locale.

Exemples

Additionner des quantités

# Additionner des quantités
#
# Compte les cases directes d’un Array pour parcourir ses indices sans les dépasser.
#
# Integer >= 0. Tableau vide et autre type donnent 0 : ce n’est pas une validation de type. Un
# nombre, pas un booléen ni le dernier indice.

SUB Main()
    # La boucle visite trois entrées 0..2 et renvoie 150. C’est la boucle qui additionne, pas
    # GetArrayLength.
    # Requête locale sans serveur, déplacement ni modification du tableau. Les exemples utilisent
    # des données fixes, pas l’inventaire réel.

    Dim amounts(2)
    amounts[0] = 50
    amounts[1] = 75
    amounts[2] = 25
    Dim total = 0
    For index = 0 To GetArrayLength(amounts) - 1
        total += amounts[index]
    Next
    Return total
END SUB

Explication des paramètres et du déroulement:

  • La boucle visite trois entrées 0..2 et renvoie 150. C’est la boucle qui additionne, pas GetArrayLength.
  • Requête locale sans serveur, déplacement ni modification du tableau. Les exemples utilisent des données fixes, pas l’inventaire réel.

Points et coordonnées séparés

# Points et coordonnées séparés
#
# Compte les cases directes d’un Array pour parcourir ses indices sans les dépasser.
#
# Integer >= 0. Tableau vide et autre type donnent 0 : ce n’est pas une validation de type. Un
# nombre, pas un booléen ni le dernier indice.

SUB Main()
    # Deux points de trois cases chacun : résultat 2|3, pas six. Le personnage ne bouge pas.
    # Requête locale sans serveur, déplacement ni modification du tableau. Les exemples utilisent
    # des données fixes, pas l’inventaire réel.

    Dim first(2)
    first[0] = 100
    first[1] = 200
    first[2] = 0
    Dim second(2)
    second[0] = 101
    second[1] = 200
    second[2] = 0
    Dim route(1)
    route[0] = first
    route[1] = second
    Return CStr(GetArrayLength(route)) & "|" & CStr(GetArrayLength(route[0]))
END SUB

Explication des paramètres et du déroulement:

  • Deux points de trois cases chacun : résultat 2|3, pas six. Le personnage ne bouge pas.
  • Requête locale sans serveur, déplacement ni modification du tableau. Les exemples utilisent des données fixes, pas l’inventaire réel.

Protéger le premier indice

# Protéger le premier indice
#
# Compte les cases directes d’un Array pour parcourir ses indices sans les dépasser.
#
# Integer >= 0. Tableau vide et autre type donnent 0 : ce n’est pas une validation de type. Un
# nombre, pas un booléen ni le dernier indice.

SUB Main()
    # String donne 0 : no route est renvoyé avant l’indexation. Le test protège aussi un Array vide
    # sans distinguer les deux cas.
    # Requête locale sans serveur, déplacement ni modification du tableau. Les exemples utilisent
    # des données fixes, pas l’inventaire réel.

    Dim route = "not an array"
    If GetArrayLength(route) = 0 Then
        Return "no route"
    End If
    Return route[0]
END SUB

Explication des paramètres et du déroulement:

  • String donne 0 : no route est renvoyé avant l’indexation. Le test protège aussi un Array vide sans distinguer les deux cas.
  • Requête locale sans serveur, déplacement ni modification du tableau. Les exemples utilisent des données fixes, pas l’inventaire réel.

Clone this wiki locally