Einzelnen Beitrag anzeigen

demic
(Gast)

n/a Beiträge
 
#1

"Array of Record" sortieren?

  Alt 5. Mär 2011, 18:16
Delphi-Version: 5
Hallo,

ich habe ein dynamisches Array of Record (ähnlich TSearchRec). Dieses Array wird mit FindFirst/Next gefüllt. Nun möchte ich natürlich den Inhalt auch auf verschiedener Weise sortieren können. Da ich nun merke, dass könnte etwas schwer werden, habe ich mit folgendes überlegt.

TStringlist.Sort

Ich möchte nach Dateinamen, Dateityp, Dateigröße oder Dateidatum sortieren können und habe mir gedacht, ich lasse das mit einem dynamischen Array und fülle eine TStringliste auf folgende Weise:

Beispiel nach Sortiertyp Dateigröße:
2622###hallo.dat|22.12.2010|13:44|+rest...(z.b. dateiattribute usw.)
62###welt.dat|13.12.2010|13:24|+rest...(z.b. dateiattribute usw.)
23362###delphi ist toll.exe|12.10.2010|3:24|+rest...(z.b. dateiattribute usw.)

Oder nach Sortiertyp Dateiname:
hallo.dat###2622|22.12.2010|13:44|+rest...(z.b. dateiattribute usw.)
welt.dat###62|welt.dat|13.12.2010|13:24|+rest...(z .b. dateiattribute usw.)
delphi ist toll.exe###23362|12.10.2010|3:24|+rest...(z.b. dateiattribute usw.)

"###" ist sozusagen eine Trennung. Je nachdem wie ich sortieren möchte, kommt der entsprechende Inhalt nach vorne, dann ein "###" und danach die anderen Daten. Kann man mit dieser Idee dann TStringlist.Sort anwenden? In der Hilfe steht, ".sort" sortiert Aufwärts. Aber ich denke ".sort" berücksichtigt zum sortieren auch den Inhalt, der nach dem "###" kommt.

Oder gibt es eine andere Möglichkeit? Am liebsten wäre mir ja, ich könnte irgendwie mein "Array of Record" beibehalten und dieses sortieren. Aber dafür müsste ich wohl selbst alle Sortieralgorithmen schreiben. Deshalb meine o.g. Idee.

Gruß
Michael
  Mit Zitat antworten Zitat