Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: TClientDataSet/midas.dll und RegistryEinträge

  Alt 14. Aug 2005, 11:41
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....
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat