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 .....
| _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); |
| |
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 ....
| |
| @Do( |
| @StatusBar(@Text(@Elements(_newSortedList) + 1)); |
| _newSortedList := _newSortedList : (@Text(@Elements(_newSortedList) + 1) + _dLim5 + @Right(_position ; _dLim5)) |
| ) |
| |
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
| @StatusBar("SortedList"); |
| @StatusBar(_sortedList); |
Das gibt dir den Wert von _sortedList in die Statuszeile aus. Es würde mich sehr wundern, wenn du da etwas angezeigt bekommst.