AGB  ·  Datenschutz  ·  Impressum  







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

Array sortieren

Ein Thema von Marcel1990 · begonnen am 25. Dez 2016 · letzter Beitrag vom 30. Dez 2016
 
striderx

Registriert seit: 11. Feb 2007
Ort: Bergisch Gladbach
207 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Array sortieren

  Alt 29. Dez 2016, 09:41
wie wäre es denn hiermit (ohne Klasse):

Delphi-Quellcode:
type
  tPerson = record
              FNachName: String;
              FGroesse: Double;
              FAlter: Word;
            end;

var
 aPersons: Array of tPerson;
 SortMode: Word = 1;

...
SetLength(aPersons, N + 1]; //+ 1 wg. des Elements 0


procedure SortPersons; //Insertion-Sort

var
  I: Word;
  J: Word;

begin
  for I := 1 to Length(aPersons) - 1 do begin
      J := I;
      aPersons[0] := aPersons[I];
      while (J > 0) and (Less(aPersons[0], aPersons[J - 1])) do begin
        aPersons[J]:= aPersons[J - 1];
        Dec(J);
      end;
      aPersons[J]:= aPersons[0];
  end;
end

function Less(X, Y: Word): Boolean;

var
  R: Integer;

begin
  Result := False;
  case SortMode of
     1: begin
           R := AnsiCompareText(aPersons[X].FNachname, aPersons[Y].FNachname);
           if R < 0 then Result := True
           else if R = 0 then begin
              if aPersons[X].FAlter < aPersons[Y].FAlter then Result := True
              else if aPersons[X].FAlter = aPersons[Y].FAlter then begin
                 if aPersons[X].Groesse < aPersons[Y].FGroesse then Result := True;
              end;
         end;
     2: begin
           ...
         end;
     3: begin
           ...
         end;
end;
  Mit Zitat antworten Zitat
 


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 22:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz