Domino 9 und frühere Versionen > ND8: Entwicklung
Serialisierte Liste nach Datum sortieren
Thomas Schulte:
Die Liste ist dein Ergebnis. Oder? Die ursprüngliche Liste (dein Ausgangsmaterial) würde mich viel mehr interessieren.
bikerboy:
ja is in dem fall auch schon das ergebnis...
du kannst ja die daten einfach per hand ändern
bikerboy:
hab die liste mal ein bisschen eingedampft....
andere Frage mit dem Code stosse ich doch auf nen Fehler, wenn ich 2 mal das selbe datum habe, oder ?
bikerboy:
@jBubbleBoy
habe glaube erst jetzt verstanden , was du mir sagen wolltest.
Habe mal eine einfache list mit datum~wert genommen und durch @Sort() geschickt.
Das rennt ja einwandfrei.
Werde des gleich umbauen
Thomas Schulte:
Also .....
Wenn ich deine Liste nehme (ich hab die Startdatum Werte etwas verändert) ...
|#||Route~Paderborn - Lippstadt Paderborn|StartDate~25.02.2006|StartTime~08:00:00|EndTime~15:00:00|
|#||Route~Paderborn - Hannover- Paderborn|StartDate~10.02.2006|StartTime~06:15:00|EndTime~00:00:00|
|#||Route~Paderborn - Hannover- Paderborn|StartDate~21.02.2006|StartTime~00:00:00|EndTime~21:00:00|
|#||Route~Paderborn - Hannover- Paderborn|StartDate~13.02.2006|StartTime~06:00:00|EndTime~00:00:00|
|#||Route~Paderborn - Hannover- Paderborn|StartDate~24.02.2006|StartTime~00:00:00|EndTime~21:00:00|
Und die durch deinen Code laufen lasse .....
--- Code: ---_dLim1 := "|";
_dlim2 := "~";
_dlim5 := "|#|";
REM {Sortieren und neu numerieren};
_unsortedList := SourceField;
_sortedList := @Sort(@TextToTime(@Left(@Right(_unsortedList;_dLim1 + "StartDate" + _dLim2);_dLim1) + " " + @Left(@Right(_unsortedList;_dLim1 + "StartTime" + _dLim2);_dLim1)));
@Transform(_sortedList ; "_key" ;
@Transform(_unsortedList ; "_position";
@Do( _posKey := @TextToTime(@Left(@Right(_position;_dLim1 + "StartDate" + _dLim2);_dLim1) + " " + @Left(@Right(_position;_dLim1 + "StartTime" + _dLim2);_dLim1));
@If( _posKey = _key ;
@Do(
_newSortedList := _newSortedList : (@Text(@Elements(_newSortedList) + 1) + _dLim5 + @Right(_position ; _dLim5))
)
;""
)
)
)
);
FIELD SolutionBikerboy := @Trim(_newSortedList);
--- Ende Code ---
Dann kommt bei mir als Ergebnis diese Liste raus ....
1|#||Route~Paderborn - Hannover- Paderborn|StartDate~10.02.2006|StartTime~06:15:00|EndTime~00:00:00|
3|#||Route~Paderborn - Hannover- Paderborn|StartDate~13.02.2006|StartTime~06:00:00|EndTime~00:00:00|
4|#||Route~Paderborn - Hannover- Paderborn|StartDate~21.02.2006|StartTime~00:00:00|EndTime~21:00:00|
5|#||Route~Paderborn - Hannover- Paderborn|StartDate~24.02.2006|StartTime~00:00:00|EndTime~21:00:00|
6|#||Route~Paderborn - Lippstadt Paderborn|StartDate~25.02.2006|StartTime~08:00:00|EndTime~15:00:00|
Und ich denke mal das ist nicht das Ergebis das du da haben willst.
Das Problem das du da hast liegt hier ....
--- Code: ---
@Do(
@StatusBar(@Text(@Elements(_newSortedList) + 1));
_newSortedList := _newSortedList : (@Text(@Elements(_newSortedList) + 1) + _dLim5 + @Right(_position ; _dLim5))
)
--- Ende Code ---
Weil du beim ersten Durchlauf nämlich ZWEI Elemente von _newsortedlist erzeugst.
Außerdem hast du, zumindest mit der Liste die du uns da zur Verfügung gestellt hast noch ein anderes Problem ....
Schreib doch mal nach deinem Sort ein
--- Code: ---@StatusBar("SortedList");
@StatusBar(_sortedList);
--- Ende Code ---
Das gibt dir den Wert von _sortedList in die Statuszeile aus. Es würde mich sehr wundern, wenn du da etwas angezeigt bekommst.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln