AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sortierung eines RECORD-Arrays

Ein Thema von TriphunEM · begonnen am 11. Feb 2006 · letzter Beitrag vom 12. Feb 2006
Antwort Antwort
TriphunEM

Registriert seit: 8. Jan 2004
147 Beiträge
 
#1

Sortierung eines RECORD-Arrays

  Alt 11. Feb 2006, 15:36
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 :
... ORDER BY flag,title ASC Kennt jemand eine fertige gute Funktion bzw. Algo dafür???

MfG
  Mit Zitat antworten Zitat
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#2

Re: Sortierung eines RECORD-Arrays

  Alt 11. Feb 2006, 15:37
Sortieralgorithmen gibt's ja genug... sortier einmal nach "flag" und alle gleichen flags nochmal nach "title".

Dust Signs
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
Zottel
(Gast)

n/a Beiträge
 
#3

Re: Sortierung eines RECORD-Arrays

  Alt 11. Feb 2006, 19:40
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.
  Mit Zitat antworten Zitat
TriphunEM

Registriert seit: 8. Jan 2004
147 Beiträge
 
#4

Re: Sortierung eines RECORD-Arrays

  Alt 12. Feb 2006, 11:53
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???
  Mit Zitat antworten Zitat
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#5

Re: Sortierung eines RECORD-Arrays

  Alt 12. Feb 2006, 11:54
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
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 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