Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TStringList absteigend sortieren (https://www.delphipraxis.net/170194-tstringlist-absteigend-sortieren.html)

shmia 5. Sep 2012 15:42

AW: TStringList absteigend sortieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also die Grundlage für Natural Sort ist Natural Compare.
Das ist gar nicht so einfach, aber ich hab mir da mal etwas Code von der DP geklaut (Danke xaromz!) und nochmals verbessert.
Herausgekommen ist eine Unit, die man so direkt verwenden kann.
Man müsste vielleicht noch Anpassungen für die höheren Delphi Versionen mit Unicode vornehmen und könnte die Unit dann in die Code-Library eintüten.

Delphi-Quellcode:
// Anwendungsbeispiel zum "natürlichen" Sortieren
function StringListSortCompare(List: TStrings; Index1, Index2: integer): integer;
begin
  // Index1 und Index2 sind vertauscht -> absteigend sortieren
  if List.CaseSensitive
    then Result := NaturalCompareStr(List[Index2], List[Index1])
    else Result := NaturalCompareText(List[Index2], List[Index1]);
end;

XxnemesisxX49 5. Sep 2012 16:02

AW: TStringList absteigend sortieren
 
Ich hab soweit alles eingefügt, aber bei
Code:
type
   TTextCompFunc = function(const S1, S2: string):Integer;
zeigt er mir den Fehler "':' erwartet, aber '=' gefunden" an. Wenn ich dann aber : hinschreibe, erscheint die Fehlermeldung "ein Bezeichner erwartet aber FUNCTION gefunden."

Was muss ich da noch verändern? :)

shmia 5. Sep 2012 16:13

AW: TStringList absteigend sortieren
 
Zitat:

Zitat von XxnemesisxX49 (Beitrag 1181702)
zeigt er mir den Fehler "':' erwartet, aber '=' gefunden" an.

Welche Delphi Version?
Die Typdeklaration ist eigentlich schon seit Delphi 1 legal und müsste so selbst in Turbo-Pascal möglich sein.
Sehr seltsam...
Vielleicht ist TTextCompFunc schon irgendwo in der VCL definiert und man müsste nur den Namen umbenennen (z.B. nach TTextCompareFunc).

XxnemesisxX49 5. Sep 2012 16:19

AW: TStringList absteigend sortieren
 
Delphi 7

XxnemesisxX49 5. Sep 2012 16:20

AW: TStringList absteigend sortieren
 
Delphi 7

DeddyH 5. Sep 2012 16:24

AW: TStringList absteigend sortieren
 
Hast Du den Quelltext irgendwo reinkopiert, oder die Unit heruntergeladen und unter dem richtigen Namen gespeichert?

XxnemesisxX49 5. Sep 2012 16:34

AW: TStringList absteigend sortieren
 
Zitat:

Zitat von shmia (Beitrag 1181705)
Vielleicht ist TTextCompFunc schon irgendwo in der VCL definiert und man müsste nur den Namen umbenennen (z.B. nach TTextCompareFunc).

Hab ich probiert, gleicher Fehler.

Zitat:

Zitat von DeddyH (Beitrag 1181710)
Hast Du den Quelltext irgendwo reinkopiert, oder die Unit heruntergeladen und unter dem richtigen Namen gespeichert?

Ich habe alles in mein Programm reinkopiert, aber an die richtigen Stellen, meiner Meinung nach...:-D

DeddyH 5. Sep 2012 16:56

AW: TStringList absteigend sortieren
 
Dann kopier das wieder raus :mrgreen:, speichere die Unit unter "NatCompare.pas" in Deinem Delphi-Suchpfad oder dem Projektverzeichnis ab und binde sie in die uses-Klausel ein.

XxnemesisxX49 5. Sep 2012 17:03

AW: TStringList absteigend sortieren
 
Zitat:

Zitat von DeddyH (Beitrag 1181713)
in Deinem Delphi-Suchpfad oder dem Projektverzeichnis ab und binde sie in die uses-Klausel ein.

also in dem Ordner, wo das Projekt und die Unit gepspeichert sind?

Wie binde ich sie denn in die uses-Klausel ein? Das hab ich noch nie gemacht.

DeddyH 5. Sep 2012 17:07

AW: TStringList absteigend sortieren
 
Na, einfach dahinter schreiben, mit Komma getrennt.
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, {usw.}, NatCompare;


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:16 Uhr.
Seite 3 von 4     123 4      

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