Array Problem

  • Hallo, Ich bin ziemlich neu in Autoit und hab ein Problem mit meinem Code undzwar fängt er bei $aLVItem sofort bei 15 an zu zählen
    und nicht bei 08| aber er soll bei 0 anfangen

    [autoit]

    for $i = 0 To UBound($split) -1
    for $b = 0 To UBound($aLVItem) -1
    MsgBox(0,"",$split[$i] & " - " & $aLVItem[$b])
    Next
    Next

    [/autoit]


    Findet ihr das Problem ^^

    Einmal editiert, zuletzt von Taz (22. Juli 2009 um 12:18)

  • Ok ich habe jetzt herausgefunden das er beim erstellen der Variable "$aLVItem" bei 15 anfängt aber wieso das so ist weiß ich auch nicht :( hier mal der Code wie ich die Variable " $aLVItem" erstelle.

    [autoit]

    Global $aLVItem[127]
    For $i = 0 To UBound($aLVItem) -1
    $aLVItem[$i] = GUICtrlCreateListViewItem("",$list)
    Next

    [/autoit]

    Ist hier Vielleicht der Fehler ??

    Edit:Ich glaub ich weiß jetzt wo der Fehler liegt undzwar an "$aLVItem[$i] = GUICtrlCreateListViewItem("",$list)"denn ich glaube da wird auch noch die Id von $list mit hineingeschrieben.Nur wie sorge ich jetzt dafür das das nicht passiert ?(

    Einmal editiert, zuletzt von Taz (21. Juli 2009 um 16:01)

  • Ich würde mal davon ausgehen das der Array $split mit Stringsplit gebildet wurde...
    Im ERSTEN Eintrag des Arrays wird die Anzahl an "Zerteilungen" angezeigt
    $split[0]= Anzahl der "Zerteilungen"
    $split[1]= Dein gesuchter erster Wert
    (Ist nur eine Vermutung)

    und zu $aLVItem:
    Du ordnest jedem Wert des Arrays die ID des (gerade neu erstellten) Listviewitems zu.
    Da die ID jedoch NICHT bei 1 beginnt (0 ist glaub ich die GUI selber ($Form) -
    1 wird dann warscheinlich das Listview sein und weitere buttons "klauen" sich dann die nächsten IDs)
    wird deine Rückgabe von den Elementen die bereits erstellt wurden beeinflusst.
    Um die Msgbox anzupassen musst du nur die derzeitige ID (die aufgerufen wird) - die anzahl der ERSTEN ID (der Listviewitems) machen
    und ggf. noch +1 rechnen falls du nicht dir Rückgabe der ersten zeile "0" haben willst :P
    ich hoffe ich konnte dir helfen, sonst wäre es vielleicht doch angebracht den ganzen code zu posten ;)

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Ok Danke ^^,ich hab aber noch ne kleine Frage undzwar wie sorge ich dafür das GUICtrlSetData im Edit Fenster nicht alles überschreibt sondern direkt hinter dem breits Geschriebenem dann das Wort "schreibt"

  • Ich würde es über nen kleinen Trick machen:

    [autoit]

    $string=guictrlread(($ID)
    $string=$sting & $bla
    guictrlsetdata($ID)

    [/autoit]

    So müsste es gehen

    Computers are like Airconditioning. They don´t work with open Windows.