Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Tom Error am 25.11.02 - 10:43:39
-
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
-
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
-
Hi,
diese Funktion habe ich mal aus dem Web gefischt, aber noch nicht getestet.
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
Eine andere Alternative ist die:
Dim formula as String
comp = "Zu durchsuchender String"
formula = |@ReplaceSubstring("| & comp & |" ; "replaceme" ; "withvalue")|
newval = Evaluate(formula)
Axel
-
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
-
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?
-
... Evaluate funktioniert nicht mit allen Formeln - interaktive Elemente wie @DialogBox zum Beispiel funzen nicht...
... es gibt im Web verschiedene Forums, fast alle sind englischsprachig, gemeinsam ist denen, daß sie Suchmasken haben. Wenn man nach dem richtigen Begriff sucht und nicht allzu schnell aufgibt wird man sehr oft fündig...
... viel Code haben ich vom LDD-Forum unter www.notes.net...
ata
-
oder auch nett:
eknori´s Seite
oder
http://searchdomino.techtarget.com/tips/0,289484,sid4_tax283833,00.html (Lotus 411, massig Codes)
-
yoo, z.B. hier dies
http://www.eknori.de/tips/uml.htm ;D ;D