Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TStringList umgekehrt sortieren => CustomSort (https://www.delphipraxis.net/78375-tstringlist-umgekehrt-sortieren-%3D-customsort.html)

MCXSC 4. Okt 2006 02:59


TStringList umgekehrt sortieren => CustomSort
 
Moin!

Folgender Code liegt vor: :D

Delphi-Quellcode:
procedure ...
var
strings: tstringlist;
begin
string := tstringlist.create;
string.add('eintrag');
string.add('sortieren');
string.add('beispiel');
Nun soll diese StringList sortiert werden. Mit "string.sort" erreiche ich aber nur eine aufsteigende Sortierung ("beispiel", "eintrag", "sortieren"). Ich will aber eine absteigende Sortierung ("sortieren", "eintrag", "beispiel") haben... :)

Ich habe mir auch schon diverse Threads rund um die CostomSort-Funktion angeschaut/durchgelesen... aber irgendwie bin ich zu blöd dafür (oder einfach nur zu müde :))... :(

marabu 4. Okt 2006 03:34

Re: TStringList umgekehrt sortieren => CustomSort
 
Guten Morgen Marcel,

hier ein Beispiel für die Compare-Routine:

Delphi-Quellcode:
uses
  StrUtils;

// sort descending
function StringListSortCompare(List: TStringList; Index1, Index2: Integer): Integer;
begin
  if List.CaseSensitive
    then Result := AnsiCompareStr(List[Index2], List[Index1])
    else Result := AnsiCompareText(List[Index2], List[Index1]);
end;

// Aufruf
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  sl.Add('eintrag');
  sl.add('sortieren');
  sl.add('beispiel');
  sl.CustomSort(StringListSortCompare);
  // ...
end;
Grüße vom marabu

bigg 4. Okt 2006 06:51

Re: TStringList umgekehrt sortieren => CustomSort
 
moin moin,

du könntest deine Liste auch auf den Kopf stellen :spin:, indem du alle Elemente der 1.Liste von unten nach oben in eine 2.Liste kopierst. Nicht grade schnell, aber dennoch trival.

MCXSC 5. Okt 2006 01:24

Re: TStringList umgekehrt sortieren => CustomSort
 
Danke @marabu :D

@ bigg: Ja, daran habe ich auch gedacht :) Nur denke ich, ist die "richtige" Version doch etwas schneller...


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