While schleife wird ignoriert

10/10/2013 00:33 lolkop#16
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...
10/10/2013 01:06 c0w#17
ich würd mir einfach messageboxen oder besser noch consolewrites reinmachen um zu sehen wo was passiert, am besten mit @error falls doch iwo ein fehler auftritt