Variable in For Schleife mit Array definieren ?

  • Hallo,

    ich möchte ungerne 15 solche Einträge machen

    [autoit]


    $SuchenItemSub01 = GUICtrlCreateTreeViewItem("DB 1", $SuchenItem); Unterpunkt 1 wird erstellt
    $SuchenItemSub02 = GUICtrlCreateTreeViewItem("DB 2", $SuchenItem); Unterpunkt 2 wird erstellt
    $SuchenItemSub03 = ....

    [/autoit]


    von daher habe ich das bisher so gemacht:

    [autoit]


    Global $DB = "DB1|DB2|DB3"; DB steht nur als Platzhalter für andere Bezeichnungen!

    [/autoit][autoit]


    $arDB = StringSplit($DB, '|')
    For $i = 0 To UBound($arDB) - 1
    $SuchenItem & [$i] = GUICtrlCreateTreeViewItem($arDB[$i], $SuchenItem)
    Next

    [/autoit]


    Allerdings klappt der Teil mit

    [autoit]


    $SuchenItem & [$i] =

    [/autoit]


    gar nicht :(

    Wie muss der Aufruf sein, das ich via Forschleife das so hinbekomme:

    [autoit]


    $SuchenItemSub01 = GUICtrlCreateTreeViewItem("DB 1", $SuchenItem); Unterpunkt 1 wird erstellt
    $SuchenItemSub02 = GUICtrlCreateTreeViewItem("DB 2", $SuchenItem); Unterpunkt 2 wird erstellt
    $SuchenItemSub03 = ....

    [/autoit]

    Einmal editiert, zuletzt von HassanMullah (1. Juli 2013 um 15:44) aus folgendem Grund: Lösung von Oscar hat geholfen. Danke nochmals !

  • Schau dir am besten mal das Array-Tutorial von BugFix an: http://www.bug-fix.info/array_tut.htm

    Spoiler anzeigen
    [autoit]


    $SuchenItem[15] ; Wieviele du halt willst
    $arDB = StringSplit($DB, '|')
    For $i = 0 To UBound($arDB) - 1
    $SuchenItem[$i] = GUICtrlCreateTreeViewItem($arDB[$i], $i)
    Next

    [/autoit]

    Sollte so passen. (Übernehme keine Garantie/Haftung :D)

    MfG

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Hallo PainTain,

    ich kenn das Tutorial, aber anhand von Deinem Beispiel ist das Array mit 15 fix. Ich dachte mit

    [autoit]


    For $i = 0 To UBound($arDB) - 1

    [/autoit]


    ermittle ich die Größe des Array.
    Aber bei mir klappt dieser Teil nicht:

    [autoit]


    $SuchenItem & [$i] =

    [/autoit]


    Es soll dann ein

    [autoit]


    $SuchenItem1 =
    $SuchenItem2 =
    usw...

    [/autoit]


    rauskommen

  • Korrektur im Script

    [autoit]


    For $i = 0 To UBound($arDB) - 1
    Global $SuchenItemSub[$i + 1] = GUICtrlCreateTreeViewItem($arDB[$i + 1], $SuchenItem)
    Next

    [/autoit]


    dann bekomme ich

    Zitat


    ERROR: syntax error
    Global $SuchenItemSub[$i + 1] = GUICtrlCreateTreeViewItem


    ...auch das geht nicht

    [autoit]


    For $i = 1 To UBound($arDB)
    Global $SuchenItemSub & $i = GUICtrlCreateTreeViewItem($arDB[$i], $SuchenItem)
    Next

    [/autoit]

    Einmal editiert, zuletzt von HassanMullah (1. Juli 2013 um 15:30)

  • Hallo,

    Vielleicht so: ?

    [autoit]

    $arDB = StringSplit($DB, '|')
    $SuchenItem[UBound($arDB)] ; Anzahl ermitteln
    For $i = 0 To UBound($arDB) - 1
    $SuchenItem[$i] = GUICtrlCreateTreeViewItem($arDB[$i], $i)
    Next

    [/autoit]

    MfG Xenon