Montag, 6. Januar 2014

TM-SmartString: Append, Concat

Einen Text mit einem anderen zusammenzufügen, ist keine große Aufgabe. Spannend wird es erst, wenn der zu ergänzende Text aus einer Datenbankvariable kommt und den Wert Null annehmen könnte. In diesem Fall ist extra Arbeit erforderlich.
Wir spendieren unserer Klasse zwei weitere Eigenschaften, die diese Arbeit übernehmen. Eigentlich ist es nur eine Eigenschaft. Diese wurde unter zwei Namen implementiert, die beide für diese Aktion gebräuchlich sind: Append und Concat.

Eigenschaft: Append
Diese Eigenschaft gibt den enthaltenen Text ergänzt um einen weiteren Text zurück. Für den Fall, dass der anzufügende Wert Null ist, kann ein Ersatzwert definiert werden.

Implementierung
Die Implementierung erfolgt mit folgendem Code:
1:  Public Property Get Append(ByVal Text As Variant, _  
2:             Optional ByVal ValueIfNull As String = vbNullString) As String  
3:    Append = m_String & Application.Nz(Text, ValueIfNull)  
4:  End Property  
In der dritten Zeile wird der zu ergänzende Text mittels des &-Operators ergänzt. Für den Fall, dass der zu ergänzende Text Null ist, wird mit der Nz-Funktion der Ersatzwert ermittelt.
Der Name der Funktion Nz wird zusätzlich mit dem Namen der zu verwendenden Bibliothek qualifiziert; in diesem Fall "Application". So wird sichergestellt, dass die Funktion Nz aus der Bibliothek Application verwendet wird.

Bisheriger Code
Bisher wurde ein Text wie folgt um einen anderen Text ergänzt:
1:  Dim myString As String  
2:  myString = "Hello "  
3:  myString = myString & "World"  
4:  MsgBox myString  
In der dritten Zeile wird der zu ergänzende Text mittels des &-Operators ergänzt. Eine eventuelle Behandlung von Null-Werten muss separat programmiert werden.

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 "  
4:  MsgBox myString.Append("World")  
In der vierten Zeile wird die Eigenschaft Append abgerufen. Als Parameter wird der zu ergänzende Text übergeben.

Eigenschaft: Concat
Diese Eigenschaft gibt den enthaltenen Text ergänzt um einen weiteren Text zurück. Für den Fall, dass der anzufügende Wert Null ist, kann ein Ersatzwert definiert werden.

Implementierung
Die Implementierung erfolgt mit folgendem Code:
1:  Public Property Get Concat(ByVal Text As Variant, _  
2:             Optional ByVal ValueIfNull As String = vbNullString) As String  
3:    Concat = m_String & Application.Nz(Text, ValueIfNull)  
4:  End Property  
In der dritten Zeile wird der zu ergänzende Text mittels des &-Operators ergänzt. Für den Fall, dass der zu ergänzende Text Null ist, wird mit der Nz-Funktion der Ersatzwert ermittelt.
Der Name der Funktion Nz wird zusätzlich mit dem Namen der zu verwendenden Bibliothek qualifiziert; in diesem Fall "Application". So wird sichergestellt, dass die Funktion Nz aus der Bibliothek Application verwendet wird.

Bisheriger Code
Bisher wurde ein Text wie folgt um einen anderen Text ergänzt:
1:  Dim myString As String  
2:  myString = "Hello "  
3:  myString = myString & "World"  
4:  MsgBox myString  
In der dritten Zeile wird der zu ergänzende Text mittels des &-Operators ergänzt. Eine eventuelle Behandlung von Null-Werten muss separat programmiert werden.

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 "  
4:  MsgBox myString.Concat("World")  
In der vierten Zeile wird die Eigenschaft Concat abgerufen. Als Parameter wird der zu ergänzende Text übergeben.


Mit der Implementierung der Eigenschaften Append und Concat wird wieder der Vorteil bei einer Implementierung mit Hilfe einer Klasse deutlich. Die Behandlung von Null-Werte wird zentral geregelt. Der Anwender braucht sich darum nicht gesondert kümmern.

Die neue Version 1.18.02 steht (wie immer) auf meiner Webseite zum Download bereit.

Keine Kommentare: