vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Variablen/Strings · String-Operationen   |   VB-Versionen: VB5, VB608.11.07
Strings schnell duplizieren

Mit unserer StrDupl-Funktion lässt sich ein vorgebener String schnell duplizieren.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  9.127 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Hin und wieder muss man einen vorgebenenen String x-mal duplizieren. Für das Duplizieren einzelner Zeichen kann man die VB-Funktion "String$(...)" verwenden. Soll jedoch ein vorgegebener String mehrfach dupliziert werden, muss man sich selbst etwas einfallen lassen. Viele von Ihnen würde das Ganze sicherlich wie folgt lösen (was natürlich auch funktioniert).

Dim sZielString As String
Dim i As Long
 
' String "Test" 10 mal duplizieren
For i = 1 To 10
  sZielString = sZielString & "Test"
Next i

Wie gesagt: Funktionieren tut das natürlich - jedoch lässt die Performance zu Wünschen übrig, wenn man den Quellstring in einer großen Anzahl duplizieren muss.

Verwenden Sie daher besser nachfolgende Funktion, die sich der VB-Funktion "Mid$(...)" mit einem kleinen Trick bedient: zunächst wird der Zielstring auf die ingesamt benötigte Größe gebracht. Anschließend wird der zu duplizierende String einmal an den Anfang des Zielstrings kopiert. Wenn man nun den Zielstring genau einmal auf sich selbst kopiert, vervielfältigt sich dieser von ganz alleine.

' String schnell x-fach duplizieren
Public Function StrDupl(ByVal sText As String, ByVal nCount As Long) As String
  ' String mit benötigter Größe erstellen
  StrDupl = String$(Len(sText) * nCount, 0)
 
  ' jetzt den übergebenen String, der x-mal dupliziert
  ' werden soll, an die 1. Position des Zielstrings einfügen
  Mid$(StrDupl, 1) = sText
 
  ' Durch diesen Aufruf vervielfältigt sich der String
  ' ganz von alleine
  Mid$(StrDupl, Len(sText) + 1) = StrDupl
End Function

Anwendungsbeispiel:
Der String "Test" soll 17 mal dupliziert werden.

MsgBox StrDupl("Test", 17)

Dieser Tipp wurde bereits 9.127 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
(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.
 
   

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