Eigenschaft: PadLeft
Diese Eigenschaft bringt den String auf die angegebene Länge. Fehlende Zeichen werden links ergänzt. Dazu wird das angegebenen Zeichen oder die angegebene Zeichenkette verwendet.
Implementierung
Die Implementierung erfolgt mit folgendem Code:
1: Public Property Get PadLeft(ByVal TotalWidth As Integer, _
2: Optional ByVal FillInChar As String = " ") As String
3: Dim strTmp As String
4: strTmp = VBA.Replace(VBA.String(TotalWidth, "*"), "*", FillInChar)
5: If (Me.Length < TotalWidth) Then
6: PadLeft = VBA.Right$(strTmp & m_String, TotalWidth)
7: Else
8: PadLeft = m_String
9: End If
10: End Property
In der vierten Zeile wird die wird die zu ergänzende Zeichenfolge vervielfacht. Wie dieser Code funktioniert, habe ich in einem weiteren Artikel beschrieben. In Zeile 6 wird die Ergänzungszeichenfolge vor den bisherigen Text hinzugefügt. Am Ende wird der String mit der Funktion Right$ auf die gewünschte Länge gebracht. Der Name der Funktion Right$ wird zusätzlich mit dem Namen der zu verwendenden Bibliothek qualifiziert; in diesem Fall "VBA". So wird sichergestellt, dass die Funktion Right$ aus der Bibliothek VBA verwendet wird.Bisheriger Code
Bisher war folgender Code notwendig, um einen String links mit einer Zeichenfolge aufzufüllen:
1: Dim strTmp As String
2: Dim TotalWidth As Long
3: Dim FillInChar As String
4: Dim myString As String
5:
6: myString = "Hello world"
7: TotalWidth = 15
8: FillInChar = "->"
9:
10: strTmp = Replace(String(TotalWidth, "*"), "*", FillInChar)
11: If (Len(myString) < TotalWidth) Then
12: strTmp = Right$(strTmp & myString, TotalWidth)
13: Else
14: strTmp = m_String
15: End If
16:
17: MsgBox strTmp
In den Zeilen 10 bis 15 findet sich die Logik für die Ergänzung des Textes. In den vorhergehenden Zeilen werden die notwendigen Variablen deklariert und mit Werten gefüllt.Künftiger Code
Bei Verwendung der Klasse TM_SmartString sieht der Code wie folgt aus:
1: Dim myString As TM_SmartString
2: Set myString = New TM_SmartString
3: myString = "Hello world"
4: MsgBox myString.PadLeft(15, "->")
In der vierten Zeile wird die Eigenschaft PadLeft abgerufen. Als Parameter werden die Länge und die Füllzeichenfolge übergeben.Eigenschaft: PadRight
Diese Eigenschaft bringt den String auf die angegebene Länge. Fehlende Zeichen werden rechts ergänzt. Dazu wird das angegebenen Zeichen oder die angegebene Zeichenkette verwendet.
Implementierung
Die Implementierung erfolgt mit folgendem Code:
1: Public Property Get PadRight(ByVal TotalWidth As Integer, _
2: Optional ByVal FillInChar As String = " ") As String
3: Dim strTmp As String
4: strTmp = VBA.Replace(VBA.String(TotalWidth, "*"), "*", FillInChar)
5: If (Me.Length < TotalWidth) Then
6: PadRight = VBA.Left$(m_String & strTmp, TotalWidth)
7: Else
8: PadRight = m_String
9: End If
10: End Property
In der vierten Zeile wird die wird die zu ergänzende Zeichenfolge vervielfacht. Wie dieser Code funktioniert, habe ich in einem weiteren Artikel beschrieben. In Zeile 6 wird die Ergänzungszeichenfolge an den bisherigen Text angehängt. Am Ende wird der String mit der Funktion Left$ auf die gewünschte Länge gebracht. Der Name der Funktion Left$ wird zusätzlich mit dem Namen der zu verwendenden Bibliothek qualifiziert; in diesem Fall "VBA". So wird sichergestellt, dass die Funktion Left$ aus der Bibliothek VBA verwendet wird.Bisheriger Code
Bisher war folgender Code notwendig, um einen String rechts mit einer Zeichenfolge aufzufüllen:
1: Dim strTmp As String
2: Dim TotalWidth As Long
3: Dim FillInChar As String
4: Dim myString As String
5:
6: myString = "Hello world"
7: TotalWidth = 15
8: FillInChar = "<-"
9:
10: strTmp = Replace(String(TotalWidth, "*"), "*", FillInChar)
11: If (Len(myString) < TotalWidth) Then
12: strTmp = Left$(myString & strTmp, TotalWidth)
13: Else
14: strTmp = m_String
15: End If
16:
17: MsgBox strTmp
In den Zeilen 10 bis 15 findet sich die Logik für die Ergänzung des Textes. In den vorhergehenden Zeilen werden die notwendigen Variablen deklariert und mit Werten gefüllt.Künftiger Code
Bei Verwendung der Klasse TM_SmartString sieht der Code wie folgt aus:
1: Dim myString As TM_SmartString
2: Set myString = New TM_SmartString
3: myString = "Hello world"
4: MsgBox myString.PadRight(15, "<-")
In der vierten Zeile wird die Eigenschaft PadRight abgerufen. Als Parameter werden die Länge und die Füllzeichenfolge übergeben.Die nächsten Schritte sind gemacht. Mit der Implementierung der Eigenschaften PadLeft und PadRight kann er enthaltene Text in rechts bzw. links mit einer Füllzeichenfolge ergänzt werden. Wieder wird die notwendige Funktionalität in der Klasse gekapselt. Bei Verwendung der Eigenschaften entsteht sauberer, übersichtlicher Code.
Die neue Version 1.24.02 steht (wie immer) auf meiner Webseite zum Download bereit.
Keine Kommentare:
Kommentar veröffentlichen