Thomas Risi Softwareentwicklung
Addins - Datenbanklösungen - Komponenten - RTDServer - WebServices
ArrayMerge
Aus einer Frage in einem Forum ...
Es sollen mehrere VB-Arrays 'miteinander verschmolzen' werden. Hier nun eine Funktion, die das für zwei Arrays löst. Um beliebig
viele Arrays zu vereinen, einfach die Funktionsaufrufe ineinander verschachteln (s. Beispielcode).
Option Explicit
Function array_merge(arr1() As Variant, arr2() As Variant) As Variant()
Dim c As Long: c = LBound(arr1)
Dim d As Long: d = LBound(arr2)
Dim u As Long: u = UBound(arr1) - c + 1
Dim v As Long: v = UBound(arr2) - d + 1
Dim a(): ReDim a(u + v - 1)
Dim i As Long
For i = c To c + u - 1
a(i - c) = arr1(i)
Next i
For i = d To d + v - 1
a(i + u - d) = arr2(i)
Next i
array_merge = a
End Function
Sub t()
Dim a1(-1 To 3): a1(-1) = 0: a1(0) = 1: a1(1) = 2: a1(2) = 2.4: a1(3) = 2.8
Dim a2(2 To 4): a2(2) = 3: a2(3) = 4: a2(4) = 5
Dim a3(2): a3(0) = 6: a3(1) = 7: a3(2) = 8
Dim a4(3): a4(0) = 9: a4(1) = 10: a4(2) = 11: a4(3) = 12
Dim r()
r = array_merge(array_merge(array_merge(a1, a2), a3), a4)
Dim i As Long
For i = 0 To UBound(r)
Debug.Print r(i)
Next i
End Sub
© 2001 -
by Thomas Risi