Seite 1 von 1
Listen sortieren nach Datum
Verfasst: 15.05.2019 09:23
von stevie1401
Code: Alles auswählen
Structure Eingabe
Datum.s
Art.s
Betrag.s
EndStructure
Global NewList Eingabe.Eingabe()
AddElement(Eingabe())
eingabe()\Datum="12.03.1966"
eingabe()\Art="Egal"
eingabe()\Betrag="-30"
AddElement(Eingabe())
eingabe()\Datum="12.03.1965"
eingabe()\Art="Egal"
eingabe()\Betrag="-50"
AddElement(Eingabe())
eingabe()\Datum="12.03.2018"
eingabe()\Art="Egal"
eingabe()\Betrag="-35"
AddElement(Eingabe())
eingabe()\Datum="12.03.2019"
eingabe()\Art="Egal"
eingabe()\Betrag="-45"
ForEach eingabe()
Debug eingabe()\Datum
Debug eingabe()\Art
Debug eingabe()\Betrag
Next
Wie kann ich die eingabe() nach Datum sortieren?
Re: Listen sortieren nach Datum
Verfasst: 15.05.2019 09:26
von RSBasic
Besser wäre es, wenn du in das Feld "Datum" den Datumswert speicherst. Dann kannst du viel besser nach Datum sortieren, weil der Datumswert ab 01.01.1970 aufsteigend ist.
Den Datumswert bekommst du mit Date(). Nach dem Auslesen kannst du mit FormatDate() wieder in das gewünschte Datumsformat anzeigen.
Re: Listen sortieren nach Datum
Verfasst: 15.05.2019 09:28
von stevie1401
ok, und wie sortiere ich dann?
Re: Listen sortieren nach Datum
Verfasst: 15.05.2019 09:28
von Bisonte
Code: Alles auswählen
SortStructuredList(Eingabe(), #PB_Sort_Ascending, OffsetOf(Eingabe\Datum), TypeOf(Eingabe\Datum))
Re: Listen sortieren nach Datum
Verfasst: 15.05.2019 09:31
von stevie1401
Ich verwende normalerweise diese Routine:
Code: Alles auswählen
For i = 1 To anz - 1
merki = i
For l = i + 1 To anz
If Punkte(l) > Punkte(merki)
merki = l
EndIf
Next l
Swap Name(i), Name(merki)
Swap Punkte(i), Punkte(merki)
Swap Datum(i), Datum(merki)
Next i
Damit kann ich aber kein Datum sortieren und ich kann das auch nicht in Listen verwenden - oder doch?
Re: Listen sortieren nach Datum
Verfasst: 15.05.2019 09:34
von stevie1401
Ah, alles klar, den Befehl "SortStructuredList" kannte ich nicht. Besten Dank.
Re: Listen sortieren nach Datum
Verfasst: 15.05.2019 18:06
von mk-soft
Wenn man den Datum String richtig anlegt, kann man diesen auch ohne Probleme sortieren.
Format "YYYY.MM.DD"