Domino 9 und frühere Versionen > ND8: Entwicklung

Leerzeichen innerhalb eines String entfernen

<< < (2/3) > >>

koehlerbv:
Hinweis: Fulltrim in LotusScript hätte da auch nichts genützt, da der Unterschied zu Trim nur darin besteht, dass Fulltrim mit Arrays umgehen kann, Trim aber nur skalare Werte verdauen kann.

Bernhard

pram:
und ein weiterer Unterschied: Fulltrim entfernt auch doppelte Leerzeichen innerhalb des Strings. Trim nur am Anfang und Ende

ich würde auch @ReplaceSubstring verwenden um Leerzeichen zu entfernen

Wenn du aber alles entfernen willst, was nicht nach Ziffer aussieht, würde ich vielleicht sowas versuchen:

inp := "Hallo12$34%56";
rmv := @replaceSubstring(tmp;"0":"1":"2":"3":"4":"5":"6":"7":"8":"9";"");
@implode(@explode(inp;rmv);"")


Roland

koehlerbv:

--- Zitat von: pram am 03.02.12 - 21:52:53 ---und ein weiterer Unterschied: Fulltrim entfernt auch doppelte Leerzeichen innerhalb des Strings.

--- Ende Zitat ---

Äh, nicht nur laut Dokumentation macht das @Trim genauso. Vulgo: Deine Aussage ist falsch.

Dein Fromelkonstrukt ist eines dieser irgendwie genialen @Formula-Konstrukte, die schon 1992 funktionierten und in der Kürze bis heute kein Äquivalent in einer anderen Sprache (vor allem mit dieser Performance) gefunden haben.
Und wer so ein Konstrukt durchdenkt und versteht, warum das Ergebnis funktioniert, hat Notes-programmiermässig sehr viel gewonnen  ;)

Bernhard

TimDom:
Hm, hab jetzt mehrfach über das Konstrukt nachgedacht.
Komme aber nicht dahinter.

Fällt die Variable tmp, welche in der 2. Zeile genutzt wird irgendwie vom Himmel?
Müsse das nicht so aussehen?


inp := "Hallo12$34%56";
tmp := inp;
rmv := @replaceSubstring(tmp;"0":"1":"2":"3":"4":"5":"6":"7":"8":"9";"");
@implode(@explode(inp;rmv);"")

pram:
Sorry es war schon spät und in meine Formel hat sich ein Fehler eingeschlichen:
Das Konstrunkt funktioniert wie Folgt:

Eingabe:
  inp := "Hallo12$34%56";

Alle Ziffern durch "" ersetzen, heraus kommt ein String mit allen unerwünschten Zeichen
  rmv := @replaceSubstring(inp;"0":"1":"2":"3":"4":"5":"6":"7":"8":"9";"");

Die Eingabe an diesen Zeichen splitten (@explode verhält sich hier anders als Lotusscript-split, es wird nämlich jedes Zeichen als Trennzeichen akzeptiert, steht so auch in der Hilfe) und wieder zusammenführen
  @implode(@explode(inp;rmv);"")

Heraus kommt ein String, in dem die unerwünschten Zeichen fehlen (also nur noch Ziffern enthalten sind)




@Bernhard:
du beziehst dich doch hier auf Lotusscript oder?

--- Zitat ---...da der Unterschied zu Trim nur darin besteht, dass Fulltrim mit Arrays umgehen kann, Trim aber nur skalare Werte verdauen kann.

--- Ende Zitat ---
in meiner Hilfe steht:

Fulltrim (LS)
The FullTrim trims strings by eliminating any duplicate whitespaces (SPACE, TAB, NEWLINE) from the center of the string and all whitespace at the beginning and end of the strings

Trim (LS)
Removes white space from both ends of a string.

@Trim (Formelsprache)
Removes leading, trailing, and redundant spaces from a text string, or from each element of a text list.

Ich stimme dir zu, dass "@trim" das genauso wie "Fulltrim" macht.
Der Unterschied zwischen "Trim" und "Fulltrim" besteht aber nicht nur darin, das letzteres mit Arrays umgehen kann.


Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln