Einzelnen Beitrag anzeigen

Carsten1234

Registriert seit: 9. Apr 2008
Ort: Vechelde
178 Beiträge
 
Delphi 8 Professional
 
#1

Sortierung von Daten in Textdateien

  Alt 28. Aug 2009, 10:48
Hallo zusammen,

aus einem Gerät sollen mehrere Textdateien aus einem Gerät ausgelesen und in einer Tabelle dargestellt werden. Diese Dateien heissen "ereignisse.csv", "ereignisse.ba0".."ereignisse.ba9"; in jeder dieser Textdateien befinden sich max. 500 Zeilen ("Datensätze").
Zuerst werden vom Gerät anfallenden Ereignisse in die Datei "ereignisse.csv" geschrieben und wenn diese Datei ihre 500 Datensätze erreicht hat, wird sie umbenannt in "ereignisse.ba0". Im Anschluss daran wird eine neue Datei "ereignisse.csv" im Gerät erzeugt. Existiert bereits eine Datei "ereignisse.ba0", so wird zunaächst diese Datei in "ereignisse.ba1" umbenannt, dann die "ereignisse.csv" in "ereignisse.ba0".

Der Inhalt diese Dateien ist (Bsp.):

ereignisse.ba0
==============
23.08.09;11:35;
23.08.09;11:37;
23.08.09;12:13;
23.08.09;14:27;
(...)
24.08.09; 11:17;

ereignisse.csv
==============
24.08.09;11:19;
24.10.09;12:26;Datum/Uhrzeit verstellt <=== 24.10.09 KEIN Tippfehler!!!
24.08.09;13:04;Datum/Uhrzeit verstellt
24.08.09;13:38;


Angezeigt werden an der Oberfläche sollen die Ereignisse in absteigender Reihenfolge, also das jüngste Ereignis ganz oben. Bislang war das auch kein Problem, denn ich las die ereignisse-Dateien einfach ein und sortierte absteigend nach Datum/Uhrzeit.
Nun jedoch viel auf (weil man im Gerät auch Datum/Uhrzeit von meinem Programm aus verstellen kann), dass die Sortierung nach Datum/Uhrzeit nur noch bedingt richtig ist, denn - und jetzt komme ich zum 24.10.09 da oben - bei der Sortierung nach Datum/Uhrzeit bleibt der Eintrag vom 24.10.09 so lange oben in meiner Liste stehen, bis das Gerät den 24.10.09 wieder erreicht bzw. überschritten hat. Lt. Ereignisliste dort oben hatte der Anwender zunächst das Datum vorgestellt auf den 24.10.09 und im nächsten Schritt wieder zurück gestellt auf den 24.08.09.

Kurzum: Man möchte die Anzeige nun so, wie sie in den Ereignissdateien wirklich stehen mit dem jüngsten Ereignis ganz oben. Ich darf den Mist nun ausbaden und überlege wie!?
Das kleine Schmankerl dabei: Die Daten (Ereignis-Dateien) kommen nacheinander und byteweise in max. 4k-Blöcken über die serielle Schnittstelle aus dem Gerät.
Bisher hatte ich es so gemacht, dass ich den Datenstrom aus dem gerät erstmal direkt in eine TMP-Datei auf HDD zwischenspeicherte, um nach der Übertragung die TMP-Datei einzulesen. Dies hatte nicht nur den schicken Vorteil, dass in der TMP-Datei die Daten bzw. Datensätze wieder zeilenweise so wie im Gerät vorlagen, sondern auch die Reihenfolge in der Datei erstmal völlig unerheblich war, weil ich ja die Sortierkriterien Datum&Uhrzeit hatte und danach sortieren konnte.

Frage: Hat jemand eine Idee, wie ich die neu gewünschte Sortierreihenfolge am besten hinbekommen?

Dank vorab und Gruß, Carsten
  Mit Zitat antworten Zitat