Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: -Michael- am 18.11.04 - 22:21:50

Titel: LS: Array definieren - illegal arraybound ...
Beitrag von: -Michael- am 18.11.04 - 22:21:50
Hi,

ich deklariere wie folgt ein Array (Option Declare eingeschaltet, Designerversion 6.5.2):

Code
	Dim intCollCount As Integer
	intCollCount = 10 'collSource.Count - 1
	Dim vDocArray(intCollCount) As Variant

Beim Kompilieren (speichern) des Scripts kommt die Fehlermeldung "illegal arraybound for vDocArray (hier) in Zeile 3.

Schreibe ich stattdessen
Code
	Dim intCollCount As Integer
	intCollCount = 10 'collSource.Count - 1
	Dim vDocArray(10) As Variant
dann lässt sich das Script kompilieren.

Woran könnte das denn liegen? Ich habe auch schon intCollCount als Variant deklariert, aber auch dann geht es nicht.


Danke für Eure Hilfe im Voraus.

Michael
Titel: Re: LS: Array definieren - illegal arraybound ...
Beitrag von: koehlerbv am 18.11.04 - 22:53:11
Hi, Michi,

ganz einfach: Du kannst derartige Deklaration nicht mit Variablen vornehmen. Also:
Entweder wie Deine Methode 2 oder
mit einem Redim.
Zugegebenermassen auf den ersten Blick schwierig zu verstehen, aber dann doch sinnig.

Herzliche Grüsse von 83313 nach 83236  :)
Bernhard

PS:
Variante 1:
Dim aArray (0 to 10) as String

Variante 2:
Dim aArray () as String
Dim iUBound as Integer

iUBound = 10
Redim aArray (0 to iUBound)

Titel: Re: LS: Array definieren - illegal arraybound ...
Beitrag von: -Michael- am 18.11.04 - 23:00:34
Hi Bernhard,

danke für die schnelle Hilfe aus dem Nachbardorf (zumindest fast)  ;D

Redim war mir klar, damit geht es dann auch. Wenn ich länger darüber nachdenke macht es auch Sinn, da hast Du Recht. Dim's setzt man ja ganz allgemein und (i.d.R.) am am Anfang einer Routine. Da sind Variablen eigentlich gar nicht schön, die setzt man dann später.

Was übrigens geht ist ein:
Code
	Const TEST_INT%	= 10	
	Dim vDocArray(TEST_INT) As Variant

Also werden Konstanten sauber genommen. Hätte nicht gedacht dass Option Declare soweit eingreift, aber macht absolut Sinn.

Nochmal danke, da hab ich wieder was gelernt  :)

Viele Grüße nach Siegsdorf,

Michael