Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: boemitsu am 27.07.06 - 13:12:31

Titel: Listen und Formula
Beitrag von: boemitsu am 27.07.06 - 13:12:31
Hi,

Ausgehend von diesem Thread (http://atnotes.de/index.php?topic=23664.0) habe ich mir die Frage gestellt, obs irgendwie möglich ist, folgende Aufgabe ohne Schleife zu bewältigen:

Liste:
ABC
DFG
8HI
9JK
XYZ

Die resultierende Liste sollte nur diejenigen Elemente enthalten, die mit einer Zahl beginnen.

Titel: Re: Listen und Formula
Beitrag von: dirk_2909 am 27.07.06 - 13:37:38

Nur ein Versuch:

Code
_lst := MeinFeldMitListe ;

_new := @ReplaceSubstring( _lst ; "0" : "1" ....... : "9" ; "~~" ) ;

_lst2 := @Left( _new ; "~~" ) ;

_lst3 := @Left( _lst ; 1 ) ;

_lst4 := @Trim( @ReplaceSubstring( @UpperCase( _lst3 ) ; "A" : "B" ..... : "Z" ; "" ) ) ;

_wert := _lst4 + _lst2 ;

_wert

Nur ein Versuch ohne jeglichen Test !!!

Aber warum keine Schleife??  ???  :-:
Titel: Re: Listen und Formula
Beitrag von: boemitsu am 27.07.06 - 13:47:56
Weil es möglicherweise einen Weg gibt, den ich nicht kenne, der aber effizient und elegant zugleich wäre...

Dachte an eine ähnliche Lösung wie Antwort 3 in diesem Post (http://atnotes.de/index.php?topic=30953.0)....



Titel: Re: Listen und Formula
Beitrag von: dirk_2909 am 27.07.06 - 14:01:54
Es ist eine "ähnliche" Lösung !

Aber in Deinem Fall ist kein einheitlicher String in den einzelnen Elementen vorhanden, um einen
bestimmten Wert Rechts oder Links zu extrahieren.

Mit einer Schleife geht es besser  :-:
Titel: Re: Listen und Formula
Beitrag von: boemitsu am 27.07.06 - 14:14:13
Aber in Deinem Fall ist kein einheitlicher String in den einzelnen Elementen vorhanden, um einen
bestimmten Wert Rechts oder Links zu extrahieren.

Das ist mir bewusst, aber eben, vielleicht hätte es ja einen anderen Weg gegeben...

Die Schleife mit Bedingung ist natürlich auch nicht so böse... ; )

Besten dank und schöne Tag noch
Titel: Re: Listen und Formula
Beitrag von: Thomas Schulte am 27.07.06 - 14:17:50
Es geht deutlich "einfacher" (Einzeiler für das reine doing) und ohne Schleife:
Code
Liste := "ABC":"DEF":"8HI":"9ER":"XYZ";
Liste_Neu := @Trim(@Transform(Liste;"ListElement";@If(@Contains(@Left(ListElement;1);"0":"1":"2":"3":"4":"5":"6":"7":"8":"9");"";ListElement)));
@Prompt([Ok];"Was kommt da denn raus??";@Implode(Liste_Neu;"*"));

Formula Rulez  8)  O0

Der @Transform ist übrigens was das Verarbeiten von Listen angeht wirklich nicht von schlechten Eltern ....

Interessant wäre es auch das so zu schreiben:
Code
Liste := "ABC":"DEF":"8HI":"9ER":"XYZ";
Liste_Neu := @Transform(Liste;"ListElement";@If(@IsNumber(@integer(@Left(ListElement;1)));""; ListElement));
@Prompt([Ok];"Was kommt da denn raus???";@Implode(Liste_Neu;"*"));
Aber da meckert er rum, egal ob man jetzt @textToNumber oder @integer nimmt. Scheinbar funkioniert hier @isnumber nicht richtig.
Titel: Re: Listen und Formula
Beitrag von: dirk_2909 am 27.07.06 - 14:25:38
@Thomas

 ;D @Transform  :-[ Damit habe ich noch nie gearbeitet.
Hätte meine Arbeit öfters erleichtert  ::)

Das kommt davon, wenn man die Formelsprache vor Version 6 lernt und die Neuerungen nicht lernt  :-[

Man lernt immer dazu....
Titel: Re: Listen und Formula
Beitrag von: Thomas Schulte am 27.07.06 - 14:39:13
Da hast du mich gerade noch an was erinnert. Damit kann man dann auch das @trim weglassen:
Code
Liste_Neu := @Transform(Liste;"ListElement";@If(@Contains(@Left(ListElement;1);"0":"1":"2":"3":"4":"5":"6":"7":"8":"9");@nothing;ListElement));
@nothing, auch so eine "neue" Funktion unter V6.
Titel: Re: Listen und Formula
Beitrag von: boemitsu am 27.07.06 - 14:46:18
Cool... !

Besten Dank

Titel: Re: Listen und Formula
Beitrag von: DerAndre am 27.07.06 - 15:54:26
[Offtopic]

Ich glaub ich muss den Formeln noch eine Extra-Runde gönnen...  O0

Thomas ist wohl der König der Formeln.  8)

[\Offtopic]

André