Array anstatt Zahl mit Wort ($array[Wort] = "Test")

  • Hallo Leute,

    ist es möglich, dass ich anstatt einer Zahl im Array ein Wort hinschreibe?
    Geht ja in anderen Sprachen.

    Was ich meine:

    [autoit]

    $array[Wort] = "Test"

    [/autoit]

    Was muss ich beachten, wenn das möglich ist?


    MfG
    qixx

  • Komfortabler wäre sicher das Dictionary-Objekt zu verwenden.
    Hier mal ein kleines Beispiel zur Verwendung:

    Spoiler anzeigen
    [autoit]

    ;//// Dictionary Erstellen ///////////
    $oDict = ObjCreate("Scripting.Dictionary")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;//// Einträge hinzufügen ///////////
    $oDict.add ("Berlin", 3395189)
    $oDict.add ("Hamburg", 1743627)
    $oDict.add ("München", 1259677)
    $oDict.add ("Köln", 983347)
    $oDict.add ("Dresden", 517052)
    ;Beispiel hier: Einwohnerzahl wird der jeweiligen Stadt zugeordnet.

    [/autoit] [autoit][/autoit] [autoit]

    ;//// Anzahl der Elemente bestimmen ///////////
    MsgBox(0,"Anzahl Elemente in Dictionary", $oDict.Count)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;//// Überprüft ob ein Element vorhanden ist ///////////
    If $oDict.Exists ("Bonn") Then MsgBox(0, "", "Bonn ist eingetragen") ;Bonn ist im Bsp. nicht enthalten

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;//// Löscht ein Element aus dem Dictionary ///////////
    $oDict.remove ("München")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;//// Elemente aufrufen ///////////
    ConsoleWrite("Einwohner(Berlin): " & $oDict("Berlin") & @CRLF)
    ConsoleWrite("Einwohner(Dresden): " & $oDict("Dresden") & @CRLF & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    ;//// alle Schlüssel durchgehen ///////////
    For $sKey in $oDict.Keys
    ConsoleWrite("Einwohner(" & $sKey & "): " & $oDict($sKey) & @CRLF)
    Next
    ;/// Alle Werte statt Schlüssel erreicht man mit $oDict.Items ////

    [/autoit] [autoit][/autoit] [autoit]

    ;//// Leert das Dictionary ///////////
    $oDict.RemoveAll

    [/autoit]
    • Offizieller Beitrag

    Habe später mal noch etwas anderes probiert. Vielleicht kannst du damit etwas anfangen.
    Symbiose: Array + Structure = StrucList ; Zugriff kpl. assoziativ

    Ineluki: Mit Enum geht es auch. Hat aber dann ein Problem, wenn die Reihenfolge im Array sich ändert (z.B. Sortierung). Denn Enumeriert sind die Indexwerte, die dann nicht mehr auf dasselbe Element verweisen.