Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Gruenkohl am 13.10.05 - 09:13:01

Titel: ArrayGetIndex bei einem mehrdimensionellen Array
Beitrag von: Gruenkohl am 13.10.05 - 09:13:01
Guten Morgen zusammen,

steh mal wieder auf dem Schlauch.
Ich habe ein mehrdimensionelles Array zb.: Array(1,x).

In Array(0,x) schreibe ich Werte, die ich später suchen möchte, um in Array(1,x) einen Wert zu addieren.
Wenn ich mit ArrayGetIndex(Array, Wert) danach suche, bekomme ich aber einen höheren Wert zurück als es Elemente im Array gibt.
Daraus folglich einen "Subscript out of range".

Hat jemand sowas schon mal gemacht oder eine Ahnung wie man dort die Abfrage gestaltet?

Danke und Gruss
Andreas
Titel: Re: ArrayGetIndex bei einem mehrdimensionellen Array
Beitrag von: diali am 13.10.05 - 09:21:25
der Index wird durchnummerriert zurückgegeben
(0, 1, 2, 3, 4)
(5, 6, 7, 8, 9)
(10,11,12,13,14)
usw.

Gruß
Dirk
Titel: Re: ArrayGetIndex bei einem mehrdimensionellen Array
Beitrag von: Gruenkohl am 13.10.05 - 09:25:54
@Dirk:

Danke für schnelle Antwort.

Werde dann mal schauen, wie ich auf den richtigen Index komme.
Eine Funktion gibt es dafür also nicht, oder?

Gruss
Andreas
Titel: Re: ArrayGetIndex bei einem mehrdimensionellen Array
Beitrag von: diali am 13.10.05 - 09:28:38
mit Ubound(Array, 2) bekommt man die Weite der 2. Dimension heraus.
Titel: Re: ArrayGetIndex bei einem mehrdimensionellen Array
Beitrag von: Gruenkohl am 13.10.05 - 10:15:58
@Dirk:
Danke, das hatte ich schon. Da ich nur ein zwei-dimensionales Array habe, mache ich es wie folgt:

Code
IndexResult = ArrayGetIndex(Array, Suchwert)
    If IndexResult > Ubound(Array,2) then
IndexResult = IndexResult - Ubound(Array,2)
End If

Danke und Gruss
Andreas
Titel: Re: ArrayGetIndex bei einem mehrdimensionellen Array
Beitrag von: Gruenkohl am 13.10.05 - 11:47:56
Mein vorheriger Lösungsansatz war falsch.
Richtig müsste es so aussehen:

Code
IndexResult = ArrayGetIndex(Array, Suchwert)
If IndexResult <> 0 then
     IndexResult = IndexResult / 2
End if

Wenn ich mich nicht vertue, ist der Divisor die Dimension des Arrays.
Sollte ich falsch liegen, bitte berichtigen.

Gruss
Andreas