Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Don Pasquale am 15.01.03 - 14:09:16

Titel: @ReplaceSubstring in Script
Beitrag von: Don Pasquale am 15.01.03 - 14:09:16
Hallo Leute,

ich habe aus irgendeiner Quelle folgendes, was ziemlich genau das ist was ich benötige :

Function KillUmlaute ( s As String ) As String
 strformula = { @ReplaceSubString("} + s + {"; "ä":"ö":"ü":"ß":"Ä":"Ö":"Ü"; "ae":"oe":"ue":"ss":"Ae":"Oe":"Ue" ) }
 nStr = Evaluate( strformula )
 KillUmlaute = nstr(0)
End Function
 
Und zum Testen folgender Aufruf
 
Sub Click(Source As Button)
 Dim s As String
 s="ä ü ö ß Ä Ü Ö "
 Msgbox KillUmlaute(s)
End Sub


Nur leider funktioniert hier gar nichts.
Gibt es eine Chance dass hier zum Laufen zu bringen ?

Ciao

Don Pasquale
Titel: Re:@ReplaceSubstring in Script
Beitrag von: eknori am 15.01.03 - 14:13:26
nun, zum einen habe ich das mal geschrieben.

habe dein Posting 1:1 in eine neue Schaltfläche Kopiert und alles works as designed.

 ??? ??? ???
Titel: Re:@ReplaceSubstring in Script
Beitrag von: Till_21 am 15.01.03 - 14:17:40
try this :

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

gruss / till
Titel: Re:@ReplaceSubstring in Script
Beitrag von: Don Pasquale am 15.01.03 - 14:25:46
Hi eknori,

Von Dir ist das ? Hätte ich mir denken können.  ;D

Ich hatt die Funktion in eine Skriptbibliothek gepackt,
deswegen funktionierte das nicht.

Stimmt : Wenn alles in einem Button steckt, dann funktioniert
es.

Kannst Du mir erklären, warum ich bei
nStr = Evaluate( strformula )
immer ein "Operation failed" bekomme
wenn ich die Function in eine Bibliothek packe ?


Ciao

Don Pasquale
Titel: Re:@ReplaceSubstring in Script
Beitrag von: Till_21 am 15.01.03 - 14:27:59

Kannst Du mir erklären, warum ich bei
nStr = Evaluate( strformula )
immer ein "Operation failed" bekomme
wenn ich die Function in eine Biblithek packe ?

Weil evaluate *** ist und deshalb nicht benutzt werden soll...

Gruss
Titel: Re:@ReplaceSubstring in Script
Beitrag von: eknori am 15.01.03 - 14:31:54
Hab den Code selber in einer LIB; und der Code funzt mit dieser Lib in ca 20 Datenbanken  ??? ???

eknori
Titel: Re:@ReplaceSubstring in Script
Beitrag von: Don Pasquale am 15.01.03 - 14:32:23
@Till21 : ***

Kannitverstan ?

Ciao
Don Pasquale
Titel: Re:@ReplaceSubstring in Script
Beitrag von: Axel am 15.01.03 - 14:34:16
@Till_21

Zitat
Weil evaluate *** ist und deshalb nicht benutzt werden soll...

So einfach kannst du dir das nicht machen. Ich habe einige Evaluate-Anweisungen in Bibliotheken und die laufen alle.

@Don Pasquale

schau auch mal hier nach

http://www.free.dominoserver.de/computer/noteslibrary.nsf/1af7bead26d85723c1256ca800382b3a/4b72e8439c418c6080256c9300736699?OpenDocument (http://www.free.dominoserver.de/computer/noteslibrary.nsf/1af7bead26d85723c1256ca800382b3a/4b72e8439c418c6080256c9300736699?OpenDocument)


Axel

Titel: Re:@ReplaceSubstring in Script
Beitrag von: Don Pasquale am 15.01.03 - 14:40:41
Hab den Code selber in einer LIB; und der Code funzt mit dieser Lib in ca 20 Datenbanken  ??? ???

eknori

@eknori :

Also von vorne : Ich mach ja irgendwo was falsch:

Wenn ich folgendes in meine Bibliothek packe :

Function KillUmlaute ( s As String ) As String
    strformula = { @ReplaceSubString("} + s + {"; "ä":"ö":"ü":"ß":"Ä":"Ö":"Ü"; "ae":"oe":"ue":"ss":"Ae":"Oe":"Ue" ) }
    nStr = Evaluate( strformula )
------>    KillUmlaute = nstr(0)
End Function


Bekomme ich bei ----> ein Illegal paranthesis reference
das kann ich beheben mit
Dim nstr as Variant

Aber das Operation failed bei
    nStr = Evaluate( strformula )

da weiss ich nichts
ciao
Don Pasquale
Titel: Re:@ReplaceSubstring in Script
Beitrag von: Axel am 15.01.03 - 14:50:04
Hi,

ich hab den Code mal in eine Bibliothek gepackt und funktioniert einwandfrei.

Hast du evt. irgendwo noch eine andere Funktion oder Routine die so heißt ?


Axel
Titel: Re:@ReplaceSubstring in Script
Beitrag von: Don Pasquale am 15.01.03 - 14:59:15
@Axel,

2 mal dieselbe Function in einer Bibliothek ?
Nein, zur Sicherheit habe ich aber eine 2 Function
mit kompett anderem Namen erstellt und dort habe ich das gleiche
Problem.

Ciao
Don Pasquale
Titel: Re:@ReplaceSubstring in Script
Beitrag von: ata am 15.01.03 - 15:19:57
... hast du dir nStr mal im Debugger angeschaut? Es sieht danach aus, daß es kein Array ist...

ata
Titel: Re:@ReplaceSubstring in Script
Beitrag von: Don Pasquale am 15.01.03 - 15:29:24
@ata:

???
Ich habe es doch 2 Zeilen vorher als Variant deklariert.

Ciao

Don Pasquale
Titel: Re:@ReplaceSubstring in Script
Beitrag von: ata am 15.01.03 - 15:35:55
... was ist in der Variablen "s" tatsächlich drin, ist der String sauber...

ata
Titel: Re:@ReplaceSubstring in Script
Beitrag von: ata am 15.01.03 - 15:39:32
@Till_21

... ich verwende Evaluate in einigen Libs und hatte damit noch nie Probleme...

... meine Frage ein Posting zurück hat sich geklärt, ich werde deinen Code mal bei mir ausprobieren...

ata
Titel: Re:@ReplaceSubstring in Script
Beitrag von: Till_21 am 15.01.03 - 15:44:05
sorry zusammen, ich war ein wenig voreilig...
habe nur den betreff gelesen und ein replacesubstring-ersatz in script gepostet...

das mit den umlauten habe ich nicht gelesen, und meine gepostete function x-mal zu verschachteln, ist sicherlich
auch nicht das performanteste...

gruss / till
Titel: Re:@ReplaceSubstring in Script
Beitrag von: ata am 15.01.03 - 15:47:28
@Don

... den folgenden Code habe ich gerade getestet, und der funktioniert ohne Tadel...

Code
Function KillUmlaute ( s As String ) As String 
   Dim strFormula As String
   Dim nStr As Variant
   
   strformula = { @ReplaceSubString("} + s + {"; "ä":"ö":"ü":"ß":"Ä":"Ö":"Ü"; "ae":"oe":"ue":"ss":"Ae":"Oe":"Ue" ) } 
   nStr = Evaluate( strformula ) 
   KillUmlaute = nstr(0) 
End Function 

... bist du sicher, daß du wirklich nur einen String übergibst und nicht eventuell was leeres oder ein Array...

ata