Autor Thema: Letzten Wert aus Textliste löschen  (Gelesen 4465 mal)

Offline Caleb666

  • Junior Mitglied
  • **
  • Beiträge: 76
Letzten Wert aus Textliste löschen
« am: 11.08.15 - 16:39:46 »
Hallo,

ich möchte gerne aus einem Feld "Feld1" (Textliste mit Mehrfachwerten) den letzen Eintrag löschen.

Inhalt "Feld1"
"Apfel"
"Birne"
"Ananas"
"Apfel"


Es soll jedoch nur der letzte Wert "Apfel" gelöscht werden.

Mit ReplaceSubstring werden ja alle Einträge mit dem Inhalt "Apfel" gelöscht:
Code
@SetField("Feld1_Neu";@Trim(@ReplaceSubstring(Feld1;@Subset(Feld1; -1);"")))

Wie muss ich die Formel umbauen, damit lediglich der letzte Eintrag aus der Textliste gelöscht wird?


Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Letzten Wert aus Textliste löschen
« Antwort #1 am: 11.08.15 - 16:49:02 »
Probier mal (so aus dem Bauch)

@SetField("Feld1_Neu";@If (@Elements (Feld1) = 1; ""; @Subset (Feld1; @Elements (Feld1)-1)))

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Letzten Wert aus Textliste löschen
« Antwort #2 am: 11.08.15 - 16:52:11 »
@ReplaceSubstring ist sowieso der falsche Befehl, denn der haut Dir bei "Apfeltasche" auch den "Apfel" weg, bleibt dann nur noch die "tasche". @Replace wäre wohl passender

Offline gstueb

  • Aktives Mitglied
  • ***
  • Beiträge: 125
  • Geschlecht: Männlich
  • God is real unless declared integer
Re: Letzten Wert aus Textliste löschen
« Antwort #3 am: 11.08.15 - 16:58:46 »
Hallo,

eine weitere Möglichkeit bestünde darin, die Textliste per @Implode(list ; separator) in einen String mit einem Separator umzuwandeln, der in den Texten definitiv nicht vorkommt, dann den letzten Teil vom String abzuschneiden und den String per @Explode wieder in eine Liste umzuwandeln.

Grüße,
Gregor

Offline Tim Pistor

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
    • www.pistor.is - Tim Pistor IT-Beratung
Re: Letzten Wert aus Textliste löschen
« Antwort #4 am: 11.08.15 - 17:49:28 »
Ich mag ja Formel-Rätsel ;)

Noch etwas kürzer als Peters Vorschlag: @Trim(@Subset( "" : liste; @Elements( liste )  ));

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Letzten Wert aus Textliste löschen
« Antwort #5 am: 11.08.15 - 20:11:05 »
Tims Lösung ist so richtig schön ..... elegant.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Letzten Wert aus Textliste löschen
« Antwort #6 am: 11.08.15 - 22:58:21 »
Anstatt @Elements muss man aber @Count verwenden, das macht die Formel nebenbei noch kürzer (von 42 auf 39) ;D und sie kommt auch damit klar, wenn Liste := @Unavailable. 

Ohne Trim hätte ich noch folgenden Vorschlag (42 Zeichen)
Code
@ifError(@Subset($:=Liste;@Count($)-1);_);

Und durch die Verwendung von Variablen lassen sich auch bei Tims Lösung noch ein paar Zeichen sparen
Code
@Trim(@Subset($:$:=liste;@Count($)));
Die Formel (37 Zeichen) versteht jetzt aber keiner mehr   ::) ::)

Gruß
Roland
Roland Praml

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

Offline Tim Pistor

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
    • www.pistor.is - Tim Pistor IT-Beratung
Re: Letzten Wert aus Textliste löschen
« Antwort #7 am: 12.08.15 - 08:47:24 »
Code
@Trim(@Subset($:$:=liste;@Count($)));

 ;D sehr schön

Offline Caleb666

  • Junior Mitglied
  • **
  • Beiträge: 76
Re: Letzten Wert aus Textliste löschen
« Antwort #8 am: 12.08.15 - 10:21:41 »
Wow, danke für die vielen Lösungen.
Da hat man die Qual der Wahl... ;D

Offline thkn777

  • Aktives Mitglied
  • ***
  • Beiträge: 176
Re: Letzten Wert aus Textliste löschen
« Antwort #9 am: 12.08.15 - 15:47:18 »
@Caleb666
Falls der Fall eintreten kann, daß in der Ausgangsliste auch Leer-Elemente enthalten sind, braucht man eine Lösung ohne @Trim (siehe pram's Vorschlag) oder so etwas z.B.

@For(x:=1; x<Feld2Anzahl; x:=x+1; res := @If(x=1;Feld2
  • ;res : Feld2
  • ))


mit Feld2Anzahl := @Elements(Feld2) und Feld2 ist die Ausgangsliste.

Sorry, wollte einfach nochmal sicherstellen, daß Du dir diesen Fall genau überlegst, bevor Du die für Dich passende Lösung auswählst.

Glombi

  • Gast
Re: Letzten Wert aus Textliste löschen
« Antwort #10 am: 13.08.15 - 09:39:47 »
Die Erweiterung von Tims Formel ohne @Trim sähe dann so aus:

@Subset(@Subset("":liste;@Elements(liste);1-@Elements(liste))

Andreas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz