1. Nimm
ADO und einen Textdatei-Treiber ODER
2. Sortiere dein array of record mit einer TStringList. Die String-Einträge setzen sich aus den Sortierkriterium zusammen.
Delphi-Quellcode:
Procedure ArraySort (Var aList : TRecordArray);
Var
sl : TStringList;
i : Integer;
Function _MakeKey (Const aRec : TUserRecord) : String;
// Liefert einen String, der als Sortierkriterium dient. Hier wird nach Kartennummer (max 20 Stellig),
// innerhalb gleicher Kartennr. nach Datum (10 stellig) und innerhalb gleichen Datums nach der Uhrzeit sortiert
// Das Verfahren lässt leicht sich auf andere Sortierkriterien anpassen.
Begin
Result := Format ('%-20s%-10s%-10s',[KartenNr, DateToStr (Datum), TimeToStr (Uhrzeit)]);
End;
Begin
sl := TStringlist.Create;
Try
// Erst in die Stringliste schreiben...
For i:=0 to Length (aList) - 1 do
sl.addObject (_MakeKey (aList[i]), @aList[i]);
// ... dann sortieren ...
sl.Sort;
// ... und nun sortiert wieder zurückschreiben
For i:=0 To sl.Count - 1 do
aList[i] := PUserRecord (sl.Objects[i])^
Finally
sl.free
end
End;
Achtung! Ungetestet und aus der hohlen Hand gesch....