Domino 9 und frühere Versionen > ND8: Entwicklung

Serialisierte Liste nach Datum sortieren

<< < (4/7) > >>

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