GUICtrlCreateList Data aus Ini einlesen... Problem

  • Hi,

    ich möchte in meinem Script die Punkte in der "GUICtrlCreateList" aus einer Ini Datei einlesen. Das ist ja auch nicht wirklich schwer, aber das Problem dabei ist, die Anzahl für "GUICtrlSetData" variiert... Ich zeig' euch mal den Teil des Codes:

    [autoit]

    $1 = IniRead("links.ini", "1A", "link1", "default")
    $2 = IniRead("links.ini", "1A", "link2", "default")
    $3 = IniRead("links.ini", "1A", "link3", "default")
    $4 = IniRead("links.ini", "1A", "link4", "default")
    $5 = IniRead("links.ini", "1A", "link5", "default")

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

    $addwrote = $1&"|"&$2&"|"&$3&"|"&$4&"|"&$5
    ....
    ....
    $addy = GUICtrlCreateList("", 16, 144, 121, 240)
    GUICtrlSetData(-1, $addwrote)

    [/autoit]

    Also, das Problem ist jetzt, dass, wenn z.B. link5 nicht in der .ini definiert ist, wird in der Liste default angezeigt. Wenn ich jetzt bei "default" nichts angebe, wird trotzdem eine Zeile in der Liste dafür verwendet, die allerdings leer ist. Und ich möchte noch mehr als 5 Links aus der Ini lesen.

    Ich hatte schon versucht das mit Arrays zu lösen, bzw. per IniReadSection die Anzahl der Links zu bestimmen aber das habe ich nicht hinbekommen.

    Hat von euch jemand eine Lösung? ?(

    LG Nico

    Einmal editiert, zuletzt von Wambo (7. Juni 2008 um 23:39)

  • So was in der Art sollte gehen:

    Spoiler anzeigen
    [autoit]

    $Section = IniReadSection("ini.ini","Links")
    For $i = 0 To UBound($Section)
    $Links &= "|" & $Section[$i][1]
    Next

    [/autoit]
  • Bekomme da einen Error:
    Array variable has incorrect number of subscripts or subscript dimension range exceeded.
    Aus der Linie:
    $addwrote = "|"&$Section[$i][1]

    $addwrote war in deinem Fall $Links

    #Edit: Und wenn ich das richtig sehe, würden doch damit nicht die Werte der jeweiligen Schlüssel in der Liste angezeigt werden, oder?

  • Doch, da werden die werte angezeigt:

    Zitat von Hilfe

    element[$i][1] is the value.


    Und Beim Array-Durchlauf hab ich was vergessen.
    Arrays sind 0-basiert, z.B. Array[5] -> indexes: 0,1,2,3,4
    Ubound gibt die Anzahl der Elemente aus, also 5
    -> Was muss man bei der Schleife wohl machen?
    Ubound() Minus ( Welche Zahl wohl ;D )