vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Variablen/Strings · Arrays   |   VB-Versionen: VB611.09.08
VariantArray von 1- nach 2- dim.Array konvertieren

Diese Funktion konvertiert ein 1-dimensionales Array in ein 2-dimensionales Array

Autor:   Norbert GrimmBewertung:     [ Jetzt bewerten ]Views:  11.442 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11kein Beispielprojekt 

Die Funktion ConvArray2Dim konvertiert ein 1-dimensionales Array in ein 2-dimensionales Array.

vArray muss mit "ReDim" erstellt(definiert) sein!

Der Inhalt des 1-dim.Array's wird in ein temp.2-dim.Array eingelesen. Das übergebene 1-dim.Array wird dann gelöscht und als 2-dim.Array redimensioniert. Die Daten werden aus dem temp.2-dim.Array eingelesen.

Diese Funktion findet Verwendung als vorgeschaltene Funktion für andere Funktionen/Prozeduren, die ein 2-dim.Array als Übergabeparameter benötigen (siehe z.B. Sort_Funktionen).

Function ConvArray2Dim(ByRef vArray() As Variant) As Long
  Dim iTyp As Integer
  Dim I As Long
  Dim nErr As Long
  Dim Ret As Long
  Dim LB1 As Long
  Dim UB1 As Long
  Dim UB2 As Long
  Dim vArr2() As Variant
 
  ' prüfe Datentyp
  iTyp = VarType(vArray)
  If iTyp = (vbVariant + vbArray) Then ' Variant_Array
    ' Fehlerroutine mit Resume
    On Error Resume Next
 
    UB1 = UBound(vArray, 1) ' prüfe 1.Dimension
    With Err
      If .Number <> 0 Then ' Err: 9
        nErr = .Number
      End If
    End With
    If nErr Then ' Err: 9
      Ret = nErr
      GoTo Exit_CA2D ' beende über Exit_CA2D
    End If
 
    LB1 = LBound(vArray, 1)
    UB2 = UBound(vArray, 2) ' prüfe 2.Dimension
    With Err
      If .Number <> 0 Then ' Err: 9
        nErr = .Number
        .Clear
      End If
    End With
    If nErr Then ' Err: 9
      Ret = nErr ' nicht dimensioniert
      ' Fehlerroutine
      On Error GoTo Err_CA2D
 
      ReDim vArr2(LB1 To UB1, 1) ' dimensioniere 2-dim-Variant_Array(temp)
      For I = LB1 To UB1 ' einlesen vArray in vVar
        vArr2(I, 0) = I
        vArr2(I, 1) = vArray(I)
      Next I
      ReDim vArray(LB1 To UB1, 1) ' redimensioniere vArray
      For I = LB1 To UB1 ' einlesen vArray in vArr2
        vArray(I, 0) = vArr2(I, 0)
        vArray(I, 1) = vArr2(I, 1)
      Next I
      Erase vArr2 ' lösche temp.Array
      Ret = 0
    End If
  Else
    Ret = iTyp
  End If
 
  ' Ret = 0 , o.k.
  ' <> 0 , Fehler bzw. kein Variant_Array
 
Exit_CA2D:
  ConvArray2Dim = Ret
  Exit Function
 
Err_CA2D:
  With Err
    Ret = .Number
    .Clear
  End With
  Resume Exit_CA2D
End Function

Dieser Tipp wurde bereits 11.442 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

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

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.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle 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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel