Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Array of CustomRecord - Strings sortieren (https://www.delphipraxis.net/91846-array-customrecord-strings-sortieren.html)

ThE_-_BliZZarD 10. Mai 2007 20:03


Array of CustomRecord - Strings sortieren
 
Hallihallo,

ich habe mir einen Record angelegt, der sieht so aus:
Delphi-Quellcode:
TSR = record
    is_directory: boolean;
    name: String;
    size: integer;
end;
Nun wird der Record mittels
Delphi-Quellcode:
var
   tmp: array of TSR;
in ein Array gepackt und dann befüllt, jeweils mit Name, Size und is_dir.

Jetzt würde ich das Array der Records gerne anhand der name's sortieren.. aber MIT den size's^^

Habe mir schon von hier diese schöne Bibliothek geholt, aber
wie ich das damit verwenden soll, is mir noch nicht so knorke.. :wiejetzt:

Hoffe auf eine kleine Anleitung *bettel & lieb guck* :love:

Danke ;-)

marabu 10. Mai 2007 20:53

Re: Array of CustomRecord - Strings sortieren
 
Hallo,

ich kann aus deiner Problembeschreibung nicht erkennen, wo da ein natural sort involviert sein könnte. Hier hast du einen normalen Sort als Anschauungsmaterial:

Delphi-Quellcode:
type
  TSR = record
    is_directory: Boolean;
    name: string;
    size: Integer;
  end;
  TSRDynArray = array of TSR;

procedure BubbleSort(var da: TSRDynArray);
var
  iInner, iOuter: Integer;
  sr: TSR;
begin
  for iOuter := Succ(Low(da)) to High(da) do
    for iInner := Pred(iOuter) downto Low(da) do
      if AnsiCompareText(da[iInner].name, da[Succ(iInner)].name) > 0 then
      begin
        sr := da[Succ(iInner)];
        da[Succ(iInner)] := da[iInner];
        da[iInner] := sr;
      end else Break;
end;
Erschließen kannst du dir den Code indem du das Tutorial zu den Sortierverfahren liest oder eine kommentierte Fassung im Forum suchst.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz