Domino 9 und frühere Versionen > Entwicklung
Suchen und Ersetzen in LotusScript
Tom Error:
Huhu Zusammen,
ich arbeite mich gerade so etwas in LotusScript ein und stosse dabei auf ein kleines Hinterniss.
Wie kann ich einen bestimmten Teil eines Strings ändern?
z.B. Ich erhalte den Wert http://LN015DB01/start.nsf
nun möchte ich nach LN015DB01 suchen und durch LN015DB02 ersetzten.
Es kann auch sein das ich den Wert http://LN015DB01/start.nsf;http://LN015DB01/blabla.nsf erhalte und auch hier sollen beide LN015DB01 durch LN015DB02 ersetzt werden.
Also praktisch wie die Suchen- und Ersetzen-Funktion bekannter Texteditoren.
Für die Formalsprache habe ich @ReplaceSubstring() gefunden, aber noch nichts entsprechendes für LotusScript.
Ich hoffe Ihr könnt mir helfen.
Vielen Dank soweit
So far
Tschau
Tom
Till_21:
Public Function ReplaceSubstring(ByVal txt As String, ByVal from_str As String, ByVal to_str As String) As String
Dim pos As Integer
Dim new_text As String
Dim from_len As Integer
from_len = Len(from_str)
Do While Len(txt) > 0
pos = InStr(txt, from_str)
If pos = 0 Then
new_text = new_text & txt
txt = ""
Else
new_text = new_text & _
Left$(txt, pos - 1) & to_str
txt = Mid$(txt, pos + from_len)
End If
Loop
ReplaceSubstring = new_text
End Function
Axel:
Hi,
diese Funktion habe ich mal aus dem Web gefischt, aber noch nicht getestet.
--- Zitat ---Function ReplaceSubstring(sSource As String, sFrom As String, sTo As String) As String
Dim sResult As String
Dim i As Integer, iLenFrom As Integer, iLenRslt As Integer
i=0
iLenFrom=Len(sFrom)
sResult=sSource
Do While(i < Len(sResult))
i=i+1
If Mid$(sResult, i, iLenFrom ) = sFrom Then
iLenRslt=Len(sResult)
sResult=Left$(sResult, (i-1)) + sTo + Right$(sResult, iLenRslt - ( (i-1) + ( iLenFrom ) ) )
End If
Loop
ReplaceSubstring=sResult
End Function
--- Ende Zitat ---
Eine andere Alternative ist die:
--- Zitat ---
Dim formula as String
comp = "Zu durchsuchender String"
formula = |@ReplaceSubstring("| & comp & |" ; "replaceme" ; "withvalue")|
newval = Evaluate(formula)
--- Ende Zitat ---
Axel
Rob Green:
oder mit Evaluate innerhalb von Script:
Zeichenfolge=doc.Servername(0)
Startposition="http://"
Endzeichenfolge="/"
Server = {@Middle( Zeichenfolge ; Startposition ; Endzeichenfolge )}
result = Evaluate(Server)
edit: @Axel, ein Mann ein Gedanke ;D
Tom Error:
Ich habe dank euch nun wieder so einiges dazu gelernt, z.b. das man mit Evaluate(), @Funktionen aus LotusScript heraus ausrufen kann.
Hmm gibt es im Web gute Ressourcen für fertige Funktionen? Oder habt Ihr das Web einfach nach gut glück durchsucht?
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln