Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: DatenDuck am 21.09.06 - 15:09:49
-
Hallo Forum,
leider habe ich Probleme mit einer Forall Schleife in einem Mehrdimensionalen Array
Ich habe ein
X Y
Array(0 to 9, 0 to 9)
durch welches ich mit
Forall refVar in Array
durchloopen möchte.
Als Rückgabewert hatte ich das Y array erwartet durch dass ich dann wiederum loopen wollte...
Was ich erhalte ist jedoch leider nur der String Inhalt der Elemente im X Array
Definiert ist das Array folgendermaßen
Dim arrDependencies(0 To 9, 0 To 9) As String
... füllen...
...setzen...
Objekt.Dependencies = arrDependencies
Die Eigenschaft des Objekts ist folgendermaßen definiert
Property Get Dependencies() As Variant
Dependencies = Me.m_Dependencies
End Property
Property Set Dependencies() As Variant
Me.m_Dependencies = Dependencies
End Property
Private m_Dependencies As Variant
Sofern ich den Member "Private m_Dependencies() As Variant" definiere gibts beim Speichern einen Type mismatch...
Die Forall Schleife durch die "Arrays in dem Array" muss doch generell funktionieren oder nicht?! :-:
Ich habe hoffentlich nur einen Denkfehler gemacht.
Vielen Dank schon mal im Voraus für die Hilfe!
Bis dann,
-Moritz
-
Ich bin mir nicht sicher ob ForAll überhaupt mit mehrdimensionalen Arrays funktioniert.
Axel
PS: Gehört das nicht laut deiner Signatur nicht ins 6er-Forum?
-
Danke für die Antwort :)
Der Post ist hier scho richtig ;) Bei uns läuft zwar die angegebene Version, aber basteln tu ich in R5 zwecks Kompatibilität und meinem Verlangen nach noch mehr Selbstbestrafung als es mit R6 möglich ist. ;D ;D ;D
Würde denn die normale For Schleife da besser laufen?! Hat da jemand Erfahrung?!
Vielen Dank nochmals.
-
Forall ist etwas performanter, geht aber nicht so gut in deinem Fall
Ich würde
For i = Lbound( vArray ) to Ubound( vArray )...
und das in den entsprechenden Instanzen und den Validierungen mit IsEmpty, bzw. IsArray
Toni
-
Ein paar Anmerkungen zu mehrdimensionalen Arrays:
Intern werden auch mehrdimensionale Arrays IMMER als eindimensionale Arrays geführt. Die Mehrdimensionalität ist also nur die Pointersteuerung. Mit einem ReDim Preserve kann man immer nur die LETZTE Arraydimension ändern.
Die unterschiedlichen Grenzen mehrdimensionaler Arrays findet man über den zweiten Parameter von LBound und UBound
For i=LBound(array,1) To UBound(array,1)
For j=LBound(array,2) To UBound(array,2)
...
Next
Next
Gruß
Norbert