vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Variablen/Strings · Arrays   |   VB-Versionen: VB5, VB604.03.08
Pseudo 2-dimensionales Variant_Array

Dieses Beispiel erzeugt ein Variant_Array, dessen 1.Dimension mit weiteren Variant_Arrays(Childs) gefüllt wird.

Autor:   Norbert GrimmBewertung:  Views:  8.362 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Dieses Beispiel erzeugt ein Variant_Array, dessen 1.Dimension mit weiteren Variant_Arrays(Childs) gefüllt wird. Mit dieser Methode lassen sich spaltenorientiere Daten (UDT's, DatenGrids, usw.), unabhängig von ihrer Spaltenanzahl (Elemente), während der Laufzeit in ein 1-dimensionales Array einlesen.

Private Function CreateDynArray() As Integer
  Dim varArray() As Variant
  Dim V0 As Variant
  Dim V1 As Variant
  Dim V2 As Variant
  Dim V3 As Variant
  Dim V As Variant
  Dim varText As Variant
  Dim A As Integer
  Dim I As Integer
  Dim LB As Integer
  Dim UB As Integer
  Dim U As Integer
 
  On Error GoTo Err_CDA
 
  V0 = Array(0, 1, 2, 3, 4, 5, 6)
  V1 = Array("A", "B", "C")
  V2 = Array(0, "A", 2, "B", "C", "D")
  V3 = Array("Karlsruhe", "22.02.2008", "100,5 €", "vb@rchiv", "VB6", "norbert.grimm@web.de")
 
  ' [Redim] Array und weise der x.Dimension jeweils ein neues Array zu.
  ' Achtung: varArray ist u. bleibt ein Array mit EINER-Dimension,
  ' 
  ' V0 -> V3 usw.
  ' normal Arrays die dynamisch während der Laufzeit mit Hilfe einer Zählerschleife
  ' dimensioniert werden
 
  ReDim Preserve varArray(0)
  varArray(0) = V0
 
  ReDim Preserve varArray(1)
  varArray(1) = V1
 
  ReDim Preserve varArray(2)
  varArray(2) = V2
 
  ReDim Preserve varArray(3)
  varArray(3) = V3
 
  ' Die Dimensionierung des quasi "pseudo 2-dimensionale Array" lässt
  ' sich nur in der 1.Dimension fehlerfrei mit [Lbound, Ubound] auswerten
 
  LB = LBound(varArray)
  UB = UBound(varArray)
  ' bzw.
  LB = LBound(varArray, 1)
  UB = UBound(varArray, 1)
 
  ' z.B. führt zu Fehler
  ' UB = UBound(varArray, 2)
  ' Err 9: Index außerhalb des gültigen Bereichs
 
  MsgBox UB, vbInformation, "UBound" & Space(20)
 
  ' Den Inhalt des Arrays mit einen [For Each ... Next]-Schleife auslesen.
  ' In A die akt.Dimensionierung der x.Dimension ermitteln
  For I = 0 To UB
    For Each V In varArray(I)
      varText = varText & V & vbCr
      A = A + 1
    Next V
    varText = varText & vbCr & vbCr & "Dim : " & A
 
    MsgBox varText, vbInformation, "Inhalt V" & I & Space(20)
    A = 0
    varText = ""
  Next I
 
Exit_CDA:
  Exit Function
 
Err_CDA:
  MsgBox Err & vbCr & Err.Description, vbCritical, "CreateDynArray"
  Resume Exit_CDA
End Function



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.