Hallo an Alle,
ich habe leider wieder ein kleines (Verständnis) Problem.
Ich würde gerne ein Array mit Arrays als Inhalt erstellen.
Funktioniert ja soweit eigentlich, aber wenn ich auf das innere Array schreiben will geht das nur über einen Funktionsaufruf mit Variable ByRef.
Ist das die einzige Lösung?
Ich habe früher viel in C programmiert und da geht das mit Pointer etwas einfacher...
Schaut euch bitte mal mein Beispiel an.
(Es ist nur ein Beispiel, ohne tieferen Sinn)
Das Array-Tut von BugFix hab ich gelesen, aber leider greift er bei seinem Beispiel nur lesend auf das innere Array zu.
Vermutlich geht das doch einfacher oder vielleicht gibts dafür eine UDF.
Sorry, aber wie gesagt ich komme von C und muss mich noch etwas einarbeiten.
Bitte um Aufklärung,
Danke.
#include <Array.au3>
Global $aWochentage[][] = _
[ _
[ 1, "Montag","Monday"], _
[ 2, "Dienstag","Tuesday"], _
[ 3, "Mittwoch","Wednesday"], _
[ 4, "Donnerstag","Thursday"], _
[ 5, "Freitag","Friday"], _
[ 6, "Samstag","Saturday"], _
[ 7, "Sonntag","Sunday" ] _
]
Global $aMonate[][] = _
[ _
[1, "Januar","January"], _
[2, "Februar","February"], _
[3, "März","March"], _
[4, "April","April"], _
[5, "Mai","May"], _
[6, "Juni","June"], _
[7, "Juli","July"], _
[8, "August","August"], _
[9, "September","September"], _
[10,"Oktober","October"], _
[11,"November","November"], _
[12,"Dezember","December"] _
]
Global $aDatum[] = [$aWochentage,$aMonate]
; Array mit zwei Arrays
_ArrayDisplay($aDatum,"Array mit zwei Arrays")
; Erstes innere Array
_ArrayDisplay($aDatum[0],"Wochentage (Original)")
; Zweites innere Array
_ArrayDisplay($aDatum[1],"Monate (Original)")
; wäre schön, geht aber nicht
;($aDatum[0])[0][1] = "Neuer Montag"
; Temp-Array vom ersten inneren Array erzeugen
Global $aTemp = $aDatum[0]
; dies ist jetzt aber nur eine Kopie vom Array $aWochentage
$aTemp[0][1] = "Neuer Montag"
; Array $aTemp hat sich geändert
_ArrayDisplay($aTemp,"$aTemp")
; Array $aWochentage hat sich (natürlich) nicht geändert
_ArrayDisplay($aDatum[0],"Wochentage (nicht geändert)")
; Wie schreib ich den nun in Array $aWochentage???
; Geht das nur über einen Funktionsaufruf ?
Schreib_in_inneres_Array($aDatum[0])
; Array $aWochentage hat sich (natürlich) nicht geändert
_ArrayDisplay($aDatum[0],"Wochentage (geändert)")
Func Schreib_in_inneres_Array(ByRef $aArray)
$aArray[0][1] = "Neuer Montag"
EndFunc
Alles anzeigen