ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 07.12.2001

Diese Seite wurde zuletzt aktualisiert am 07.12.2001
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Strings verketten

Zurück...


Anzeige

(-hg) mailto:hg_concatstr@aboutvb.de

Sie kennen sicher die Stückelei, wenn Sie mehrzeilige Texte zusammensetzen möchten, etwa für ein Label oder als Nachricht einer MessageBox. Eine weit verbreitete Vorgehensweise ist etwa:

Dim Msg As String

Msg = "Hallo Welt!" & vbCrLf
Msg = Msg & "und" & vbCrLf
Msg = Msg & "Guten Morgen!"
MsgBox Msg

Wenn Sie von vornherein wissen, dass die einzelnen Teile mit jeweils einer Zeilentrennung (vbCrLf oder auch vbNewLine) dazwischen zusammengesetzt werden sollen, können Sie die Zeilen auch als Array anlegen und mittels der Join-Funktion zusammensetzen (Einschränkung: Diese Funktion steht erst ab Visual Basic 6 zur Verfügung):

Dim Msg(1 To 3) As String

Msg(1) = "Hallo Welt!"
Msg(2) = "und"
Msg(3) = "Guten Morgen!"
MsgBox Join(Msg, vbCrLf)

Falls Sie der Schreibaufwand stören sollte, für jedes zusammen zu setzendes Element eine eigene Zeile mit einer eigenen Zuweisung schreiben zu müssen, können Sie auch die Array-Funktion verwenden:

MsgBox Join(Array("A", "B", "C"), vbCrLf)

Falls die Einzelteile länger sein sollten, sparen Sie immerhin die Zuweisungen, wenn Sie um der Lesbarkeit willen nicht alles in eine einzige Zeile packen möchten (was hier ja ohne weiteres möglich wäre):

MsgBox Join(Array("Hallo Welt!", _
                  "und", _
                  "Guten Morgen!"), vbCrLf)

Möchten Sie auch noch die Array-Funktion einsparen, verwenden sie die folgende Hilfsfunktion ConcatStrSep. Im Gegensatz zu Join wird ihr der einzufügende Trenn-String im ersten Parameter übergeben, damit die einzelnen Elemente nachfolgend wie bei der Array-Funktion als ParamArray in beliebiger Menge aufgelistet übergeben werden können.

Public Function ConcatStr(Separator As String, _
 ParamArray Parts() As Variant) As String

  ConcatStr = Join(Parts, Separator)
End Function

Der Aufruf sähe beispielsweise so aus:

MsgBox ConcatStr(vbCrLf, "Hallo Welt!", "und", "Guten Morgen!")

Das Join-Prinzip können Sie übrigens auch einsetzen, wenn Sie eine Reihe von Strings auch ohne Trenn-String zusammenfügen möchten. Die übliche stufenweise Verkettung wie etwa

Dim Text As String

Text = "abc"
Text = Text & "def"
Text = Text & "ghi"
Text = Text & "jkl"
...

ist nämlich verhältnismäßig langsam, da jedes Mal der komplette String (Text) einmal im Speicher umkopiert werden muss. Je länger er wird, um so länger dauert zudem noch die Bearbeitung jeder Stufe.

Legen Sie hingegen die einzelnen Elemente als Array an, können Sie die Join-Funktion einsetzen:

Dim Texte(1 to 4) As String
Dim Text As String

Texte(1) = "abc"
Texte(2) = "def"
Texte(3) = "ghi"
Texte(4) = "jkl"
Text = Join(Texte)

Modul modConcatStr (modConcatStr.bas - ca. 0,3 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche




Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer