Rubrik: Variablen/Strings · String-Operationen | VB-Versionen: VB6, VBA | 29.07.15 |
Beliebige Zeichen am Anfang und/oder Ende eines Strings entfernen Drei neue Funktionen für die String-Manipulation in VB6/VBA: TrimLeft, TrimRight und TrimAll | ||
Autor: Dieter Otter | Bewertung: | Views: 8.139 |
www.tools4vb.de | System: WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Die Standard-Funktionen "Trim", "LTrim" und "RTrim" kennt wohl jeder. Mit diesen Funktionen lassen sich Leerzeichen am Anfang und/oder Ende eines Strings entfernen.
Was aber, wenn man andere Zeichen am Anfang/Ende des Strings entfernen möchte, z.B. Zeilenumbrüche, Null-Zeichen etc. ?
Hierfür gibt es ab sofort drei neue Funktionen, die Sie einfach nur in ein Modul übernehmen müssen.
' Entfernt alle angegebenen Zeichen links vom String Public Function TrimLeft(ByVal Value As String, Optional ByVal Char As String = " ", _ Optional ByVal nCount As Long = 0) As String If Char = " " Then TrimLeft = LTrim$(Value) Else Dim nLen As Long nLen = Len(Char) If nCount > 0 Then Dim i As Long While Len(Value) > 0 And Left$(Value, nLen) = Char And i < nCount Value = Mid$(Value, nLen + 1) i = i + 1 Wend Else While Len(Value) > 0 And Left$(Value, nLen) = Char Value = Mid$(Value, nLen + 1) Wend End If End If TrimLeft = Value End Function
' Entfernt alle angegebenen Zeichen rechts vom String Public Function TrimRight(ByVal Value As String, Optional ByVal Char As String = " ", _ Optional ByVal nCount As Long = 0) As String If Char = " " Then TrimRight = RTrim$(Value) Else Dim nLen As Long nLen = Len(Char) If nCount > 0 Then Dim i As Long While Len(Value) > 0 And Right$(Value, nLen) = Char And i < nCount Value = Left$(Value, Len(Value) - nLen) i = i + 1 Wend Else While Len(Value) > 0 And Right$(Value, nLen) = Char Value = Left$(Value, Len(Value) - nLen) Wend End If End If TrimRight = Value End Function
' Entfernt alle angegebenen Zeichen links und rechts vom String Public Function TrimAll(ByVal Value As String, Optional ByVal Char As String = " ", _ Optional ByVal nCount As Long = 0) As String TrimAll = TrimRight(TrimLeft(Value, Char, nCount), Char, nCount) End Function
Über den zusätzlichen optionalen Parameter nCount kann die Anzahl der Zeichen/Zeichenketten festgelegt werden, die entfernt werden sollen.