Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Silvio am 28.06.04 - 16:51:17

Titel: Eintrag aus Textliste löschen nur wenn...
Beitrag von: Silvio am 28.06.04 - 16:51:17
... eine bestimmte Zeichenfolge darin vorkommt.
@F ist eine nicht meine Sprache, darum benötige ich nochmals eure Hilfe.

In einem versteckten Feld(Berechnet, Mehrfachw.) versuche ich eine gefilterte Liste zu erhalten.
In Textliste-A stehen Einträge die die Zeichenfolge "0" enthalten. Ich möchte eine gefilterte Textliste-B ohne diese "0"-Einträge.

Ich habe in der Online-Hilfe sehrwohl die @Replace & @ReplaceSubString gefunden und damit 'etwas' versucht, aber immer nur  die "0" gefiltert statt den ganzen Eintrag zu löschen.
Das ganze kann ja nicht so schwierig sein, oder??

vielen Dank
Titel: Re:Eintrag aus Textliste löschen nur wenn...
Beitrag von: koehlerbv am 28.06.04 - 16:56:44
Nach dem @ReplaceSubstring brauchst Du noch ein @Trim - und das war es auch schon. Leere Members der Liste werden dabei entfernt.

HTH,
Bernhard
Titel: Re:Eintrag aus Textliste löschen nur wenn...
Beitrag von: Glombi am 28.06.04 - 17:05:18
Wenn Du aus "Textliste_A" die "0" Werte herausfiltern willst, geht es so:

Textliste_B := @Trim(@Replace(Textliste_A;"0";""))

Andreas
Titel: Re:Eintrag aus Textliste löschen nur wenn...
Beitrag von: Silvio am 28.06.04 - 17:05:30
Ja das ist mir bekannt. Ich zeig das Problem mal mit einer Liste:

"Eintrag-1 | 1"
"Eintrag-2 | 0"
"Eintrag-3 | 1"

Meine eigenen Versuche habe haben nur den Eintrag-2 verkürzt auf "Eintrag-2 |" statt diesen ganz zu löschen. Wie bringe ich @F dazu, danach den ganze Eintrag zu löschen?

danke
Titel: Re:Eintrag aus Textliste löschen nur wenn...
Beitrag von: Glombi am 28.06.04 - 17:08:48
So:

_ListeNurMitNull :=
@Trim(@Left(Textliste_A;"| 0")) + ("| 0");

@Trim(@Replace(Textliste_A;_ListeNurMitNull;""))

Andreas
Titel: Re:Eintrag aus Textliste löschen nur wenn...
Beitrag von: koehlerbv am 28.06.04 - 17:18:30
@F ist eine nicht meine Sprache, darum benötige ich nochmals eure Hilfe.

Daran solltest Du arbeiten, Silvio - das Beispiel zeigt sehr schön, dass @functions manchmal extrem elegant sein können - und zeitsparend.

Bernhard
Titel: Re:Eintrag aus Textliste löschen nur wenn...
Beitrag von: Silvio am 28.06.04 - 17:40:39
Hurra
genau das hab ich gebraucht ;). Meine Lösung sieht jetzt so aus:

Aus der Liste fliegen jetzt die 0 raus:
(Auswahl Bereich Abt.P) | cus_SelectionAreaP | 1
(Auswahl Bereich Abt.Q) | cus_SelectionAreaQ | 0
(GeräteInfo1) | cus_DeviceInfo1 | 1
...

_tmp := @Trim( @GetProfileField( "DatabaseProfile"; "apOpSubforms" ));
_null := @Trim( @Left( _tmp; "| 0" ) +"| 0" );

delimiter := @NewLine;
@Trim( @Word( @Explode(   @Implode(
      @Replace( _tmp; _null; "" );
   delimiter ); delimiter );
"|"; 2 ));

REM "-";

Die berechneten Teilmasken enthalten jetzt die @F:
_idx := 1; <= Position in der Haupt-Maske
@Subset( @Subset( clSubformList; _idx ); -1 );

Damit lese ich jetzt die verwendeten Teilmasken aus dem Profile aus.

Gruss &