Problem beim Auslesen von Arrays

  • Hallo Leute,
    Ich würde gerne ein Programm schreiben und experimentiere deshalb mit mehrdimensionalen Arrays. Nun bekomme ich folgendes Problem:
    Nachdem ich die Arrays nun mit dem Wert einer Funktion belegt habe und mir diesen Wert wieder ausgeben lassen will, gibt er mir in der MessageBox gar keinen Wert noch nicht mal 0. Das Feld ist einfach leer. Ich weiß nicht genau wo mein Fehler liegt, deshalb wende ich mich ratsuchend an euch. Im Folgenden das vollständige Programm:

    [autoit]

    Global $iGlobal $jFor $i = 0 To 1 For $j = 0 To 1 Global $b = Random() Global $arr[2][2] $arr[$j][$i] = $b If $i <> 0 Then MsgBox(0, $arr[$i-1][0],$arr[0][$i-1]) EndIf NextNext

    [/autoit]
  • setze mal die Deklaration des Arrays aus der Schleife raus

    [autoit]

    Global $i
    Global $j
    Global $arr[2][2]
    For $i = 0 To 1
    For $j = 0 To 1
    Global $b = Random()
    $arr[$j][$i] = $b
    If $i <> 0 Then
    MsgBox(0, $arr[$i-1][0],$arr[0][$i-1])
    EndIf
    Next
    Next

    [/autoit]
  • Hi,
    natürlich kann man sich alle Werte des Arrays in Msgboxen ausgeben lassen, aber einfacher und verständlicher, wie Arrays aufgebaut bzw gefüllt werden ist die Anzeige mit _ArrayDisplay()

    [autoit]

    #include <Array.au3>

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

    Dim $arr[5][3]
    For $i = 0 To UBound($arr, 2) - 1 ;beachte Dimension-Parameter in ubound()!
    For $j = 0 To UBound($arr, 1) - 1 ;beachte Dimension-Parameter in ubound()!
    $b = Random()
    $arr[$j][$i] = $b ;array füllen
    _ArrayDisplay($arr,$j&" "&$i) ;anzeigen
    Next
    Next

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

    _ArrayDisplay($arr, "Array gefüllt")

    [/autoit]
  • Die Deklaration der Array-Variable vor die Schleife zu setzen hat funktioniert! Und die Anzeige _ArrayDisplay kannte ich auch noch nicht, ich werde sie aber ab jetzt benutzen. Danke für diese schnelle und gute Hilfe :)