Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Hedwig14 am 03.02.12 - 12:14:52
-
Hallo
in einer Ansicht möchte ich das Textfeld mit dem Inhalt "448 12 48" als "4481248" darstellen.
Mit @Trim komme ich nicht zum gewünschten Ergebnis, da nur links und rechts die Leerzeilen gelöscht werden.
Fulltrim gibt es in Formelsprache leider nicht !
Hat jemand eine andere Idee ?
Viele Grüßs
-
Hallo,
So auf ganz die Schnelle wuerden mir @Implode und @Explode einfallen
Andreas
-
@ReplaceSubstring
-
An das naheliegendste denkt man immer zuletzt. :'(
Andreas
-
ja logisch !
Vielen Dank, war immer auf Trim aus !
-
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
-
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
-
und ein weiterer Unterschied: Fulltrim entfernt auch doppelte Leerzeichen innerhalb des Strings.
Ä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
-
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);"")
-
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?
...da der Unterschied zu Trim nur darin besteht, dass Fulltrim mit Arrays umgehen kann, Trim aber nur skalare Werte verdauen kann.
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.
-
Du hast natürlich bzgl. LS-Trim recht, Roland.
Bernhard
-
Witzigerweise funktioniert das hier genauso:
rmv := @Explode( inp ; "0123456789" );
@ReplaceSubstring( inp ; rmv ; "" );
Formelsprache ist echt genial...
-
> ... in der Kürze bis heute kein Äquivalent in einer anderen Sprache (vor allem mit dieser Performance) gefunden haben.
Naja, kann man drüber diskutieren :-).
$string =~ s/\s//g;
macht in PERL ebendieses.
-
PERL ist aber für Notes / Domino eher nicht so geeignet ;D
Bernhard
-
Unter Windows kommt man mit Perl ueber COM auch wunderbar an Notes Dokumente ran. Nicht, dass ich das schon mal gemacht haette ... ::)