Hallo zusammen,
wie kann ich herausfinden wieviel elemente ein Array enthält?
Manche Methoden und Funktionen des UNO geben mir ja Arrays zurück (z.B. das Dialogelement Listbox über die Methode "DelectedItemsPosition(Array of String,Boolean)). Ich weis jedoch nicht wieviele elemente in diesem Array drin sind (zum Beispiel wieviele Elemente in der Listbox markiert sind). Wenn ich dann Element für Element durchlaufe bekomme ich irgenwann eine Fehlermeldung wenn ich über das letzte Element hinausschieße.
Das Ganze könnte man natürlich mit einem Errohandler in den Griff bekommen, wäre aber schön wenn es eine Funktion gäbe.
Anzahl der Elemente in einem Array
Moderator: Moderatoren
-
- ***
- Beiträge: 88
- Registriert: Mi, 30.07.2003 18:06
- Wohnort: Wiesloch
Anzahl der Elemente in einem Array
OOo 2.1 , Win XP
wie kann ich herausfinden wieviel elemente ein Array enthält?
Das ist ein bißchen philosopisch in sofern es um die Anzahl der Elemente geht (weil ja Element möglicherweise Inhalt meint), Du kannst jedoch die Größe des Arrays ermitteln, dafür gibt es:
LBound und UBound
siehe Onlinehilfe von OOo.
Du müßtest dann noch prüfen ob jede "Zelle" des Arrays auch tatsächlich mit Inhalt belegt ist.
Gruß
Stephan
-
- ***
- Beiträge: 88
- Registriert: Mi, 30.07.2003 18:06
- Wohnort: Wiesloch
-
- ***
- Beiträge: 88
- Registriert: Mi, 30.07.2003 18:06
- Wohnort: Wiesloch
Du kannst bei LBOUND() und UBOUND() die Dimension des Arrays angeben, fasse also eines der beiden in eine Schleife und zähle die Dimension hoch. Sobald die zu groß wird gibt es einen Fehler, fange diesen ab und ermittle den aktuellen Zählerwert der Schleife. Dieser Wert minus 1 ist die Dimension des Arrays.Hm, jetzt stehe ich vor dem nächsten Problem. Kann man auch irgenwie herausfinden, was für eine Dimension der Array hat (Array(x) => 1 Array(x,y) =>2 usw.)?
ohne Feinheiten also prinzipiell so:
Code: Alles auswählen
...
On Error Goto z
x = 0
Do
x = x + 1
a = LBOUND(arrayname(),x)
Loop
z:
dimension = x - 1
...
Gruß
Stephan