Rubrik: Variablen/Strings · Arrays | VB-Versionen: VB6 | 13.01.09 |
String-Arrays verbinden Eine Funktion, mit der sich zwei String-Arrays zu einem neuen String-Array verbinden lassen. | ||
Autor: Rolf Wahlbrinck | Bewertung: | Views: 16.315 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Zuweisen von Arrays gibt es bereits als Tipp:
Array1() = Array2()
Was es nicht gibt, bzw. was ich noch nie gesehen habe,ist:
Array() = Array1() + Array2()
Nachfolgendes Verfahren funktioniert, jedoch habe ich aber nicht das Gefühl, dass es optimal ist. Evtl. müsste es doch mit Zeigern (analog zum Sortierverfahren) wesentlich schneller gehen?
Public Function String_Felder_Verbinden( _ ByRef StartFeld1() As String, _ ByRef StartFeld2() As String, _ Optional ByVal Sep As Variant) As Variant ' Feldtrennzeichen If IsMissing(Sep) Then Sep = Chr$(1) ' Prüfen, ob die beiden Arrays existieren und dimensioniert sind If Not (Not StartFeld1()) Then If Not (Not StartFeld2()) Then ' Neues String-Array bilden und zurückgeben String_Felder_Verbinden = Split(Join(StartFeld1(), Sep) + Sep + _ Join(StartFeld2(), Sep), Sep, -1, vbBinaryCompare) Else String_Felder_Verbinden = StartFeld1 End If Else String_Felder_Verbinden = StartFeld2 End If End Function
Aufrufbeispiel:
Dim Array1() As String Dim Array2() As String Array1() = Split("Meyer1 Müller1 Schulz1") Array2() = Split("Meyer2 Müller2 Schulz2")
' Neues Array mit allen Werten aus Array1 und Array2 bilden Dim Array3() As String Array3() = String_Felder_Verbinden(Array1(), Array2()) Dim i As Long For i = 0 To UBound(Array3) Debug.Print i, Array3(i) Next i