Problem mit Array

  • Guten Abend zusammen,

    ich habe folgendes Problem. Ich bekomme immer die folgende Fehlermeldung:

    [autoit]

    ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    GUICtrlCreateListViewItem($StringSplit[1] & "|" & $StringSplit[2] & "|" & StringReplace($StringSplit[3], $StringSplit[3], "**********") & "|" & $StringSplit[4] & "|" & $StringSplit[5], $ListView)
    GUICtrlCreateListViewItem($StringSplit[1] & "|" & ^ ERROR

    [/autoit]

    Hier der Code dazu, in der die Fehlermeldung auftaucht:

    Spoiler anzeigen
    [autoit]

    Func _LoadData()
    ;Einträge in die Liste laden.
    $FindHandle = FileFindFirstFile(@UserProfileDir & "\RDS\data\*.rds")

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

    _GUICtrlListView_BeginUpdate($ListView_Handle) ;Deaktiviert die Aktualisierung des Control.
    While 1
    $FindItems = FileFindNextFile($FindHandle)
    If @error Then ExitLoop

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

    $StringItem = _StringEncrypt(0, FileRead(@UserProfileDir & "\RDS\data\" & $FindItems), $MP, 2)
    $StringSplit = StringSplit($StringItem, "|")
    GUICtrlCreateListViewItem($StringSplit[1] & "|" & $StringSplit[2] & "|" & StringReplace($StringSplit[3], $StringSplit[3], "**********") & "|" & _
    $StringSplit[4] & "|" & $StringSplit[5], $ListView)
    WEnd
    _GUICtrlListView_EndUpdate($ListView_Handle) ;Aktiviert wieder die Aktualisierung des Control.
    EndFunc ;==>_LoadData

    [/autoit]

    Ich habe schon im Forum nach diesem Fehler geforscht, bin aber nicht weiter gekommen.

    Einmal editiert, zuletzt von MehmeX (3. Oktober 2011 um 21:14)

  • wenn der Fehler wirklich dort liegt, was nicht sicher ist, dann gibt es kein $StringSplit[5] ;)

    Edit: bei genauerem Hinsehen gibt es sogar schon kein $StringSplit[2] :rofl:

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...

    Einmal editiert, zuletzt von Schnuffel (3. Oktober 2011 um 18:54)


  • wenn der Fehler wirklich dort liegt, was nicht sicher ist, dann gibt es kein $StringSplit[5]

    Edit: bei genauerem Hinsehen gibt es sogar schon kein $StringSplit[2]

    Es sind aber insgesamt 5 Spalten und wenn ich das ganze mit IsArray() prüfe, dann gibt es auch "1" zurück.


    ...

    ???

  • ja, er gibt als Array einen Wert zurück in $StringSplit[1].
    Mach mal einen MsgBox('','',UBound($$StringSplit))
    dann wirst Du sehen ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...


  • ja, er gibt als Array einen Wert zurück in $StringSplit[1].
    Mach mal einen MsgBox('','',UBound($$StringSplit))
    dann wirst Du sehen

    Tatsächlich!!! Danke! Jetzt weiß ich wo ich schauen muss, damit das ganze wieder funktioniert - Hoffentlich! :D

  • ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...