Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sortierung eines RECORD-Arrays (https://www.delphipraxis.net/62921-sortierung-eines-record-arrays.html)

TriphunEM 11. Feb 2006 14:36


Sortierung eines RECORD-Arrays
 
Hallo,

ich würde gern mein Array sortieren :
Delphi-Quellcode:
type
  arrRec = record
    flag       : integer;
    title,
    description : string;
  end;

var
  arr_data   : array[1..10] of arrrec;
allerdings will ich nach 2 Werte sortieren:

Primär "flag" und secondär "title"!

Bestes Beispiel wie die SQL-Anweisung :
SQL-Code:
... ORDER BY flag,title ASC
Kennt jemand eine fertige gute Funktion bzw. Algo dafür???

MfG

Dust Signs 11. Feb 2006 14:37

Re: Sortierung eines RECORD-Arrays
 
Sortieralgorithmen gibt's ja genug... sortier einmal nach "flag" und alle gleichen flags nochmal nach "title".

Dust Signs

Zottel 11. Feb 2006 18:40

Re: Sortierung eines RECORD-Arrays
 
Delphi-Quellcode:
procedure DOQuickSort(X: array of Integer);
  procedure QuickSort(var A: array of Integer; iLo, iHi: Integer);
  var
    Lo, Hi         : Integer;
    Mid, T         : Integer;         //angleichen
  begin
    Lo := iLo;
    Hi := iHi;
    Mid := A[(Lo + Hi) div 2];
    repeat
      while A[Lo] < Mid do
        Inc(Lo);
      while A[Hi] > Mid do
        Dec(Hi);
      if Lo <= Hi then
      begin
        T := A[Lo];
        A[Lo] := A[Hi];
        A[Hi] := T;
        Inc(Lo);
        Dec(Hi);
      end;
    until Lo > Hi;
    if Hi > iLo then QuickSort(A, iLo, Hi);
    if Lo < iHi then QuickSort(A, Lo, iHi);
  end;
begin
  QuickSort(x, Low(x), High(x));
end;
Die Routine einfach angleichen. ist eigendlich eine recht schnelle.
Sollte damit keine probleme geben.

TriphunEM 12. Feb 2006 10:53

Re: Sortierung eines RECORD-Arrays
 
danke,

aber ich hab das problem mit dem RECORDS. da sehe ich nicht durch.

wie kann ich denn ein array-eintrag der ein record hat mit einem anderen tauschen???

Dust Signs 12. Feb 2006 10:54

Re: Sortierung eines RECORD-Arrays
 
Zitat:

Zitat von TriphunEM
wie kann ich denn ein array-eintrag der ein record hat mit einem anderen tauschen???

Wieso sollte das in irgendeiner Form anders sein als ein "herkömmlicher" Tausch?

Dust Signs


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:28 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