Autor Thema: Funktion um String zu säubern??? :-)  (Gelesen 6351 mal)

Offline gfunkus

  • Aktives Mitglied
  • ***
  • Beiträge: 224
  • Geschlecht: Männlich
  • www.atnotes.de! Hier werden sie geholfen.
Funktion um String zu säubern??? :-)
« am: 31.08.04 - 10:50:55 »
Hallo,

Kennt ihr eine Funktion (LS) mit der es möglich ist einen string nach einem bestimmten Zeichen zu suchen und dieses Zeichen zu entfernen? Sicher wäre das mit einem left und ner schleife possible aber evtl. gibt es dafür ne Funktion???



Glombi

  • Gast
Re:Funktion um String zu säubern??? :-)
« Antwort #1 am: 31.08.04 - 10:55:06 »
Es geht einfach mit @ReplaceSubstring, dass mit Evaluate aufgerufen wird.

Andreas

Offline gfunkus

  • Aktives Mitglied
  • ***
  • Beiträge: 224
  • Geschlecht: Männlich
  • www.atnotes.de! Hier werden sie geholfen.
Re:Funktion um String zu säubern??? :-)
« Antwort #2 am: 31.08.04 - 12:48:58 »
und wie übergibt man den gesäuberten string wieder zurück???
scheint irgendwie nicht zu klappen...

Dim teststring As String
   Dim tmpstring As String
   Dim eval As Variant
   teststring = "Test/WORT"
   
   
   
   tmpstring = teststring
   searchstring = "/"   
   myblank = ""
   eval = Evaluate("@replacesubstring(tmpstring; searchstring;myblank)", doc)

und jetzt würde ich den tmpstring gerne weiterverarbeiten.
aber ein:
msgbox tmpstring
gibt mir den Ursprungswert zurück???

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Funktion um String zu säubern??? :-)
« Antwort #3 am: 31.08.04 - 12:55:35 »
Schau mal spassenshalber in eval nach  ;D

Gib' auch der DesignerHelp eine Chance ...

Bernhard

Offline gfunkus

  • Aktives Mitglied
  • ***
  • Beiträge: 224
  • Geschlecht: Männlich
  • www.atnotes.de! Hier werden sie geholfen.
Re:Funktion um String zu säubern??? :-)
« Antwort #4 am: 31.08.04 - 13:00:35 »
Haha! Hab ich schon gedebugt... eval ist blank!
Die Hilfe habe ich schon was länger offen... :-(

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Funktion um String zu säubern??? :-)
« Antwort #5 am: 31.08.04 - 13:07:56 »
Jo, das Problem liegt an Deinem Evaluate: Du übergibst ja hier an @ReplaceSubstring die Feldnamen tmpstring und searchstring, und die sucht es jetzt in deinem Dokument doc.
Du musst also den Inhalt der beiden Variablen übergeben. Gleiches gilt für myblank.

HTH,
Bernhard

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:Funktion um String zu säubern??? :-)
« Antwort #6 am: 31.08.04 - 13:11:30 »
"@replacesubstring(tmpstring; searchstring;myblank)"

das ist falsch.
du kombinierst hier Konstanten (@ReplaceSubstring) mit variablen Werten (tmpstring) nicht richtig. Du darfst sie nicht einfach aneinander reihen, sondern musst sie mit dem Operator & verknüpfen.
« Letzte Änderung: 31.08.04 - 13:24:07 von Thomas Völk »
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Glombi

  • Gast
Re:Funktion um String zu säubern??? :-)
« Antwort #7 am: 31.08.04 - 13:21:04 »
So:
Dim teststring As String
Dim tmpstring As String
Dim eval As Variant

teststring = "Test/WORT"
tmpstring = teststring
searchstring = "/"  
myblank = ""

eval = Evaluate( |@replacesubstring("| + tmpstring + |"; "| + searchstring + |";"| + myblank + |")| )

msgbox eval(0)

Das doc brauchst Du in diesem Fall gar nicht.

Andreas
« Letzte Änderung: 31.08.04 - 13:21:31 von Glombi »

Offline gfunkus

  • Aktives Mitglied
  • ***
  • Beiträge: 224
  • Geschlecht: Männlich
  • www.atnotes.de! Hier werden sie geholfen.
Re:Funktion um String zu säubern??? :-)
« Antwort #8 am: 31.08.04 - 15:00:12 »
Cool. Danke. Das hat geholfen.

Vielen Dank! ;D

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Funktion um String zu säubern??? :-)
« Antwort #9 am: 31.08.04 - 15:06:41 »
Gibt es Merkwürdigkeiten bei Evaluate, hilft es meist, wenn man sich den (ja immer kompliziert aufgebauten @function-)String in eine Variable schreibt und mit einer Massagebox anzeigen lässt und dann darüber nachdenkt, was damit die "normale" Formelsprache anfangen würde.
Mir geht es jedenfalls so  :)

Bernhard

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re:Funktion um String zu säubern??? :-)
« Antwort #10 am: 31.08.04 - 18:10:28 »
Bitte Jungs schaut doch mal bei den String Funktionen in der Online Hilfe nach.  für den Replacesubstring gibt es da schon seit längerem eine eigene Funktion, die sich Replace nennt und ohne den ganzen Evaluate Schnickschnack auskommt.

Thomas ::)
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline gfunkus

  • Aktives Mitglied
  • ***
  • Beiträge: 224
  • Geschlecht: Männlich
  • www.atnotes.de! Hier werden sie geholfen.
Re:Funktion um String zu säubern??? :-)
« Antwort #11 am: 01.09.04 - 13:12:38 »
Also meinen function funktioniert soweit.
Aber wie kann ich " oder \ ersetzen?


Sub filteradr (filtername As String)
   Dim tmpstring2 As String
   Dim s As New NotesSession
   Dim eval As Variant
   tmpstring2 =filtername
   'Durchsuche String nach illegalen Zeichen ("/ \ : * ? " | < >"
   Dim searchstring As String
   
   
   myblank =""   
   For i = 0 To 7
      Select Case i
      Case 0 : searchstring = "/"
      Case 1 : searchstring = ":"
      Case 2 : searchstring = ":"
      Case 3 :  searchstring = "*"
      Case 4 : searchstring = "?"
      Case 5 : searchstring = "|"
      Case 6  :searchstring = "<"
      Case 7 :searchstring = ">"
      End Select
            eval = Evaluate( |@replacesubstring("| + tmpstring2 + |"; "| + searchstring + |";"| + myblank + |")| )
      tmpstring2=eval(0)
         Next i
   
   filtername = tmpstring2

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re:Funktion um String zu säubern??? :-)
« Antwort #12 am: 01.09.04 - 13:24:49 »
also ich weiss ja nicht... aber wenn Du ein wenig Ahnung von Formelsprache hättest, dann würdest Du Dich nicht so verkünsteln...

eine Formel, um alle von Dir gewünschten Zeichen zu ersetzen, wäre:

@ReplaceSubstring( tmpString ; "/" : "\\" : ":" : "*" : "?" : "|" : "<" : ">" : "\"" ; "")

und in Script dann:

fromString = {"/" : "\\" : ":" : "*" : "?" : "|" : "<" : ">" : "\""}
evalString = {@ReplaceSubstring("} & tmpString & {"; } & fromString & { ; "} & myblank & {")}
eval = Evaluate( evalString )
tmpString2 = eval( 0 )

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline gfunkus

  • Aktives Mitglied
  • ***
  • Beiträge: 224
  • Geschlecht: Männlich
  • www.atnotes.de! Hier werden sie geholfen.
Re:Funktion um String zu säubern??? :-)
« Antwort #13 am: 01.09.04 - 13:52:15 »
und welche stelle zieht das " (Gänsefüsschen) raus?
Weil scheint so nicht zu funzen... ???
In der Formelsprache bin ich in der Tat nicht sehr geübt. ;-)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Funktion um String zu säubern??? :-)
« Antwort #14 am: 01.09.04 - 13:55:08 »
Das wird so notiert: "\"" (wie es Tode gemacht hat.
Oder @Char (34)

Bernhard

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re:Funktion um String zu säubern??? :-)
« Antwort #15 am: 01.09.04 - 14:42:23 »
jawohl... wieder ein Quereinsteiger, der glaubt bei Notes ohne Formelsprache und mit ein bisschen Script- Programmierung über die Runden zu kommen...

-ohne weiteren Kommentar-

Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline gfunkus

  • Aktives Mitglied
  • ***
  • Beiträge: 224
  • Geschlecht: Männlich
  • www.atnotes.de! Hier werden sie geholfen.
Re:Funktion um String zu säubern??? :-)
« Antwort #16 am: 03.09.04 - 09:09:12 »
Nun ja, das ist so nicht ganz richtig.
Ich habe schon Ahnung von Formelsprache, aber kenne halt nicht alle Kniffe und Tricks.(Aber für den CLP hats gereicht! ;-)  ) Und vieles vergisst man halt einfach wenn man es nicht täglich anwendet. Ich entwickle hauptsächlich nur in LS. So genug entschuldigt und gerechtfertigt.

Offline gfunkus

  • Aktives Mitglied
  • ***
  • Beiträge: 224
  • Geschlecht: Männlich
  • www.atnotes.de! Hier werden sie geholfen.
Re:Funktion um String zu säubern??? :-)
« Antwort #17 am: 03.09.04 - 09:59:02 »
also ich weiss ja nicht... aber wenn Du ein wenig Ahnung von Formelsprache hättest, dann würdest Du Dich nicht so verkünsteln...

eine Formel, um alle von Dir gewünschten Zeichen zu ersetzen, wäre:

@ReplaceSubstring( tmpString ; "/" : "\\" : ":" : "*" : "?" : "|" : "<" : ">" : "\"" ; "")

und in Script dann:

fromString = {"/" : "\\" : ":" : "*" : "?" : "|" : "<" : ">" : "\""}
evalString = {@ReplaceSubstring("} & tmpString & {"; } & fromString & { ; "} & myblank & {")}
eval = Evaluate( evalString )
tmpString2 = eval( 0 )

Gruß
Tode



Bekomme Dabei diese Fehlermeldung sobald ein " im String ist.
Error 4044: Invalid formula (@ReplaceSubstring("ALBERT "STEFFENS""; "/" : "\\" : ":" : "*" : "?" : "|" : "<" : ">" : "\"" ; ""))

Kann wer helfen?

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re:Funktion um String zu säubern??? :-)
« Antwort #18 am: 03.09.04 - 10:20:44 »
es ist nicht verboten, das Gehirn einzuschalten...

Wie soll diese Formel wohl funktionieren:

@ReplaceSubstring( "ALBERT "STEFFENS""; "/" : "\\" : ":" : "*" : "?" : "|" : "<" : ">" : "\"" ; "")

das doppelte hochkomma in einer Formel ist das Text-Trennzeichen... wenn dieses nochmal in Deinem Text vorkommt, dann klappt das nicht... sollte Dein Text wirklich Albert "STEFFENS" sein, dann musst Du vorher die " maskieren (über vorgeschaltetes "\" )

Aber mal ganz abgesehen davon: Warum ignorierst Du eigentlich geflissentlich die "Korrekte" lösung von Thomas Schulte: es gibt auch in Script ein Replace, und dort musst Du Dich nicht mit Evaluate und dem richtigen zusammensetzen von Strings rumquälen...zumal Du Dich nach eingenen Angaben eh nicht mit Formel auskennst...

Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline gfunkus

  • Aktives Mitglied
  • ***
  • Beiträge: 224
  • Geschlecht: Männlich
  • www.atnotes.de! Hier werden sie geholfen.
Re:Funktion um String zu säubern??? :-)
« Antwort #19 am: 03.09.04 - 12:56:21 »
Habs jetzt mit der LS Function Replace gemacht. Funktioniert einwandfrei. Danke für eure Hilfe.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz