deswegen wollte ich ja mehrfach unauffällig darauf hinweisen, das sein script eben nicht sauber durchlaufen kann...
um absolut sicher zu gehen und abstürze zu vermeiden, sollte man sich im bestenfalle eine funktion deklarieren, welche das setzen von arraywerten übernimmt. treten von nun an fehler auf, so werden diese gezielt übergangen und nur beiläufig angezeigt.
hier ein kleines beispiel:
Code:
Dim $array[5]
For $i=0 To 6
SetArrayValue($array, $i, "Inhalt "&$i)
ConsoleWrite("Inhalt von Index "&$i&": "&GetArrayValue($array, $i)&@CRLF)
Next
Func SetArrayValue(ByRef $array, $index, $value, $line=@ScriptLineNumber)
If $index >= UBound($array) Then Return ConsoleWrite("Array SetValue Problem:"&@CRLF&@TAB&"Zeile: "&$line&@CRLF&@TAB&"Max Index: "&UBound($array)-1&@CRLF&@TAB&"Aktueller Index: "&$index&@CRLF)
$array[$index] = $value
EndFunc
Func GetArrayValue(ByRef $array, $index, $line=@ScriptLineNumber)
If $index >= UBound($array) Then
ConsoleWrite("Array GetValue Problem:"&@CRLF&@TAB&"Zeile: "&$line&@CRLF&@TAB&"Max Index: "&UBound($array)-1&@CRLF&@TAB&"Aktueller Index: "&$index&@CRLF)
Return -1
EndIf
Return $array[$index]
EndFunc
Edit:
diesen fehler macht er im übrigen auch mit den anderen arrays, wodurch auch hier in jedem falle ein scriptcrash entstehen würde...