chb1982
Goto Top

VB2005 Array dynamisch erweitern

Moin,

wie kann ich ein Array erzeugen, das sich selbststänig erweitert sobald ihm ein neuer Wert hinzugewiesen wird.

Im Detail möchte ich ein Array arr() erzeugen, das eine eigene Klasse brief beinhaltet
Jetzt kann ich zwar sagen
dim arr(10) as brief, aber dann ist es halt fix 10 Felder groß.

Ich weiß aber vorher nicht wie viele Datensätze ich hinzufügen muss, da die Daten aus diversen einzlenen Exceltabellen kommen.
Ich möchte es also so haben, dass sich das Array bei jeder neuen Zuweisung um eins erweitert.

Wie mache ich sowas?

Gruß
Christoph

Content-Key: 104093

Url: https://administrator.de/contentid/104093

Printed on: April 25, 2024 at 21:04 o'clock

Member: Logan000
Logan000 Dec 15, 2008 at 10:21:45 (UTC)
Goto Top
Moin Moin

Schau mal in deiner Hilfe nach ReDim bzw. Preserve.

Gruß L.
Member: chb1982
chb1982 Dec 15, 2008 at 10:38:38 (UTC)
Goto Top
Das habe ich auch schon gefunden. Aber dann müsste ich mir immer die alte Größe merken, und für jeden neuen Wert ein ReDim ausführen. Ich dachte das sei vielleicht nicht die schönste Lösung?1
Member: Logan000
Logan000 Dec 15, 2008 at 14:08:10 (UTC)
Goto Top
Moin

Ist so schlimm nun auch nicht:
Dim a() As String
ReDim Preserve a(a.Length + 1)

Gruß L.
Member: Biber
Biber Dec 15, 2008 at 14:29:25 (UTC)
Goto Top
Moin morheus31337,
Ich möchte es also so haben, dass sich das Array bei jeder neuen Zuweisung um eins erweitert.

Nun mal nicht so sparsam.
Leg bei jeder nötigen Erweiterung des Arrays 100 (oder 500) neue Elemente an.
Du musst Dir nur in Deinem Schnipsel merken, welches das letzte mit Werten belegte Element
ist.

Und wenn am Ende der Verarbeitung dann nur 27 von 500 Arrayelementen benutzt wurden - ja hey!
Bis dahin kennst Du den Befehl ReDim/Redim preserve und kloppst die überzähligen wieder in die Tonne.

Grüße
Biber