Probleme mir StringSplit

  • kann mir mal bitte einer sagen, wo hier der fehler ist??

    [autoit]

    Func _Einlesen()
    Local $hdatab
    Local $eingeleseneDa
    Local $name
    Local $datum
    Local $telefon
    Local $sonstiges
    Local $Splited

    $hdatab = FileOpen(@ScriptDir & "\database.ini", 0)
    While 1
    $eingeleseneDa = FileReadLine($hdatab)
    If @error = -1 Then ExitLoop
    $Splited = StringSplit($eingeleseneDa, ";")
    $name = $Splited[1]
    $datum = $Splited[2]
    $telefon = $Splited[3]
    $sonstiges = $Splited[4]
    GUICtrlCreateListViewItem($name & "|" & $datum & "|" & $telefon & "|" & $sonstiges, $lstDatabase)
    WEnd
    FileClose($hdatab)
    EndFunc

    [/autoit]

    das gibt er als fehler aus:

    C:\Users\***\Desktop\main.au3 (72) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    $datum = $Splited[2]
    $datum = ^ ERROR

    database.ini besteht auf dem desktop mit dem eintrag a;b;c;d
    1;2;3;4
    z;y;x;w

    ich erkenne keinen fehler... vielleicht ist es schon zu spät ^^

    Einmal editiert, zuletzt von Dopefish (18. Oktober 2009 um 00:50)

  • Du hast ne Ini und nimmst FileReadLine? Nimm IniRead.

    ist ja nur ein beispiel... kann sie ja auch name.a nennen das spielt ja kaum eine rolle oder?

    Zitat

    Und wenn du solche Probleme hast musst du lernen, es zu lösen.

    lol... also wenn ich es nicht versucht hätte, würde ich wohl kaum hier texten oder???
    können ja nicht alle solche pros sein wie du.....

    • Offizieller Beitrag

    Ich vermute mal, dass sich in der Datei Zeilen befinden, wo keine oder zu wenige Semikola vorkommen (z.B. Leerzeile).
    Demzufolge liefert StringSplit ein zu kleines Array zurück. Diesen möglichen Fehler solltest Du abfangen, indem Du die Größe Deines Arrays testest, bevor Du die einzelnen Elemente benutzt.

  • Danke Oscar!!
    deine antwort hat die lösung gebracht ^^
    ich hatte am ende der auszulesenden datei einen zeilenumbruch!
    das war der fehler....

    danke schön! jetzt geht es.
    finde ich aber trotzdem komisch ;)

    THX Oscar

    Einmal editiert, zuletzt von Dopefish (18. Oktober 2009 um 00:51)