Listen sortieren nach Datum

Anfängerfragen zum Programmieren mit PureBasic.
stevie1401
Beiträge: 659
Registriert: 19.10.2014 15:51
Kontaktdaten:

Listen sortieren nach Datum

Beitrag 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?

Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Listen sortieren nach Datum

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
stevie1401
Beiträge: 659
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Listen sortieren nach Datum

Beitrag von stevie1401 »

ok, und wie sortiere ich dann?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: Listen sortieren nach Datum

Beitrag von Bisonte »

Code: Alles auswählen

SortStructuredList(Eingabe(), #PB_Sort_Ascending, OffsetOf(Eingabe\Datum), TypeOf(Eingabe\Datum))
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
stevie1401
Beiträge: 659
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Listen sortieren nach Datum

Beitrag 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?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
stevie1401
Beiträge: 659
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Listen sortieren nach Datum

Beitrag von stevie1401 »

Ah, alles klar, den Befehl "SortStructuredList" kannte ich nicht. Besten Dank.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Listen sortieren nach Datum

Beitrag von mk-soft »

Wenn man den Datum String richtig anlegt, kann man diesen auch ohne Probleme sortieren.

Format "YYYY.MM.DD"
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten