Autor Thema: Feld sortieren  (Gelesen 2659 mal)

Offline MarkusL

  • Aktives Mitglied
  • ***
  • Beiträge: 124
  • Geschlecht: Männlich
Feld sortieren
« am: 17.04.13 - 11:42:51 »
Hallo zusammen,

ich habe ein Text-Feld, in dem in jeder neuen Zeile ein Eintrag steht.
Nun möchte ich das Feld per Script sortieren lassen.

Mit der Formelsprache sieht es so aus:
list1 := @Sort(Feld);
list2 := @Unique(list1);
@SetField("Feld" ; list2)

@Unique erreiche ich über FullTrim (Wobei das wahrscheinlich überflüssig wird).
Ich habe nur für @Sort keinen Befehl in der Scriptsprache gefunden.
Kann man mit Script überhaupt Felder sortieren lassen?

Danke für Eure Hilfe.
Markus
« Letzte Änderung: 17.04.13 - 12:49:00 von MarkusL »
Version Lotus Notes / Domino: 8.5.3
Server: 1 Cluster, 1 weiterer Server
Anzahl Benutzer: ca. 230

TimDom

  • Gast
Re: Feld sortieren
« Antwort #1 am: 17.04.13 - 11:52:19 »
Klar geht das.

Man nehme die Liste der Werte aus dem Feld, wende dann irgendeinen Sortieralgorithmus (Quick Sort, Bubble sort oder wie sie auch alle heissen) darauf an und schreibe die sortierte Liste wieder zurück.


Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Feld sortieren
« Antwort #2 am: 17.04.13 - 11:53:36 »
M.W. musst Du Dir das selber bauen, z.B. mit einem einfachen Bubble-Sort. Idealerweise legst Du den in eine Scriptbibliothek, um solche allgemeingültigen Routinen auch in anderen Anwendungen verwenden zu können.

Glombi

  • Gast
Re: Feld sortieren
« Antwort #3 am: 17.04.13 - 12:11:32 »
Das ist ganz einfach mit Evaluate zu machen:

dim reteval as variant
reteval = Evaluate( |FIELD Feld := @Sort(@Unique(@Trim(Feld)));@True|, doc )

Andreas

Glombi

  • Gast
Re: Feld sortieren
« Antwort #4 am: 17.04.13 - 12:14:06 »
Einen Sortieralgorithmus für Lotus Script gibts von IBM:

Using LotusScript to sort values in a field

Andreas

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Feld sortieren
« Antwort #5 am: 17.04.13 - 12:27:08 »
Tipp: Der @Sort- Algorithmus ist saumässig schnell. Ein
Code
varResult = Evaluate( "@Sort( Feld )" , doc )
mit doc = NotesDocument, das das Feld enthält bekommst Du eine Sortierung, die Du wahrscheinlich selbst nicht schneller hinkriegst (mit einfachen Quick- Sort, Bubble- Sort oder wie auch immer Routinen), und das obwohl das Evaluate natürlich etwas Performance zieht.

Wenn Du auf LotusScript "Native" bestehst, dann schau Dir die Gruppen- Maske in der pubnames.nsf oder pernames.ntf an, da sind Quicksort und BubbleSort als Functions in den Globals mit drin...
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 MarkusL

  • Aktives Mitglied
  • ***
  • Beiträge: 124
  • Geschlecht: Männlich
Re: Feld sortieren
« Antwort #6 am: 17.04.13 - 12:48:45 »
Hallo zusammen,

ich danke Euch allen. Mit Euren ganzen Hinweisen hat es super funktioniert und vor allem schnell.
DANKE.

Gruss
Markus
Version Lotus Notes / Domino: 8.5.3
Server: 1 Cluster, 1 weiterer Server
Anzahl Benutzer: ca. 230

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz