Autor Thema: Leerzeichen innerhalb eines String entfernen  (Gelesen 8645 mal)

Offline Hedwig14

  • Aktives Mitglied
  • ***
  • Beiträge: 221
Leerzeichen innerhalb eines String entfernen
« 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

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Leerzeichen innerhalb eines String entfernen
« Antwort #1 am: 03.02.12 - 12:28:41 »
Hallo,

So auf ganz die Schnelle wuerden mir @Implode und @Explode einfallen


Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Leerzeichen innerhalb eines String entfernen
« Antwort #2 am: 03.02.12 - 12:32:48 »
@ReplaceSubstring

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Leerzeichen innerhalb eines String entfernen
« Antwort #3 am: 03.02.12 - 12:49:31 »
An das naheliegendste denkt man immer zuletzt.   :'(


Andreas

Offline Hedwig14

  • Aktives Mitglied
  • ***
  • Beiträge: 221
Re: Leerzeichen innerhalb eines String entfernen
« Antwort #4 am: 03.02.12 - 12:51:37 »
ja logisch !
Vielen Dank, war immer auf Trim aus !

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Leerzeichen innerhalb eines String entfernen
« Antwort #5 am: 03.02.12 - 12:56:13 »
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

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Leerzeichen innerhalb eines String entfernen
« Antwort #6 am: 03.02.12 - 21:52:53 »
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
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Leerzeichen innerhalb eines String entfernen
« Antwort #7 am: 04.02.12 - 00:44:22 »
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

TimDom

  • Gast
Re: Leerzeichen innerhalb eines String entfernen
« Antwort #8 am: 04.02.12 - 10:01:39 »
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);"")

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Leerzeichen innerhalb eines String entfernen
« Antwort #9 am: 04.02.12 - 13:44:52 »
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.
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.


Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Leerzeichen innerhalb eines String entfernen
« Antwort #10 am: 04.02.12 - 13:51:01 »
Du hast natürlich bzgl. LS-Trim recht, Roland.

Bernhard

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Leerzeichen innerhalb eines String entfernen
« Antwort #11 am: 06.02.12 - 10:51:46 »
Witzigerweise funktioniert das hier genauso:

rmv := @Explode( inp ; "0123456789" );
@ReplaceSubstring( inp ; rmv ; "" );

Formelsprache ist echt genial...
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 Dr.Domino

  • Senior Mitglied
  • ****
  • Beiträge: 287
  • Geschlecht: Männlich
  • LN since 1996 ...
Re: Leerzeichen innerhalb eines String entfernen
« Antwort #12 am: 06.02.12 - 11:02:50 »
> ... 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.
VG,
Markus

IBM Domino 9.0.1, Lotus Domino 8.5.3 (QuickR), CentOS 6, Win64)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Leerzeichen innerhalb eines String entfernen
« Antwort #13 am: 06.02.12 - 11:08:18 »
PERL ist aber für Notes / Domino eher nicht so geeignet  ;D

Bernhard

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Leerzeichen innerhalb eines String entfernen
« Antwort #14 am: 06.02.12 - 11:11:38 »
Unter Windows kommt man mit Perl ueber COM auch wunderbar an Notes Dokumente ran. Nicht, dass ich das schon mal gemacht haette ...  ::)
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz