|
Mittels der Mid$-Funktion können Sie bequem einen String an eine beliebige Position innerhalb eines anderen Strings kopieren. Dabei kommt eine Syntax-Eigenart dieser Funktion in VB zum Tragen, bei der nicht der Rückgabewert der Funktion einer Variablen zugewiesen wird:
Ergebnis = Funktion([Parameter...])
sondern umgekehrt der Wert einer Variablen der Funktion:
Funktion([Parameter...]) = Wert
Eine solche Syntax-Umkehrung können Sie in Visual Basic als Zuweisung zu einer Eigenschaft, also als "Property Let"-Prozedur darstellen. Da die Verwendung von Property-Prozeduren nicht nur auf Klassen (und andere verwandte Modul-Arten) beschränkt ist, können Sie so auch globale Funktionen nach diesem Muster in einem Standard-Modul erstellen.
Beispiele für "Funktionen" dieses Musters sind die beiden folgenden Vereinfachungen des links- oder rechtsausgerichteten Einfügens eines Strings in einen anderen:
Public Property Let LeftS(Strg As String, ByVal Length As Long, _
Value As String)
If Length <= 0 Then
Length = Len(Value)
End If
Mid$(Strg, 1, Length) = Value
End Property
Public Property Let RightS(Strg As String, ByVal Length As Long, _
Value As String)
If Length <= 0 Then
Length = Len(Value)
End If
Mid$(Strg, Len(Strg) - Length + 1) = Value
End Property
Kleines Manko: Da bei einer "Property Let"-Prozedur der zuzuweisende Wert als letzter Parameter übergeben werden muss, können solche Funktionen allerdings keine optionalen Parameter enthalten (während die originale Mid$-Funktion durchaus optionale Parameter hat). Sie müssen daher als optional gedachte Parameter durch geschickte Wertbelegung und -auswertung simulieren. In den oben stehenden Beispielen ist das für den Length-Parameter gezeigt.
Aufrufbeispiele:
LeftS("ABCDEFG", 3) = "123456789"
LeftS("1234567890", 0) = "ABC"
RightS("Hallo Welt", 0) = "Otto"
|