Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Tom Error am 25.11.02 - 10:43:39

Titel: Suchen und Ersetzen in LotusScript
Beitrag 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
Titel: Re:Suchen und Ersetzen in LotusScript
Beitrag von: Till_21 am 25.11.02 - 10:52:16
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
Titel: Re:Suchen und Ersetzen in LotusScript
Beitrag von: Axel am 25.11.02 - 10:58:13
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

Eine andere Alternative ist die:
Zitat

Dim formula as String

comp = "Zu durchsuchender String"
formula = |@ReplaceSubstring("| & comp & |" ; "replaceme" ; "withvalue")|
newval = Evaluate(formula)


Axel
Titel: Re:Suchen und Ersetzen in LotusScript
Beitrag von: Rob Green am 25.11.02 - 11:01:55
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
Titel: Re:Suchen und Ersetzen in LotusScript
Beitrag von: Tom Error am 25.11.02 - 13:48:00
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?
Titel: Re:Suchen und Ersetzen in LotusScript
Beitrag von: ata am 25.11.02 - 13:52:48
... 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
Titel: Re:Suchen und Ersetzen in LotusScript
Beitrag von: Rob Green am 25.11.02 - 14:28:37
oder auch nett:
eknori´s Seite
oder
http://searchdomino.techtarget.com/tips/0,289484,sid4_tax283833,00.html (Lotus 411, massig Codes)
Titel: Re:Suchen und Ersetzen in LotusScript
Beitrag von: eknori am 25.11.02 - 14:50:05
yoo, z.B. hier dies

http://www.eknori.de/tips/uml.htm  ;D ;D