AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TStringList absteigend sortieren

Ein Thema von XxnemesisxX49 · begonnen am 4. Sep 2012 · letzter Beitrag vom 5. Sep 2012
Antwort Antwort
Seite 3 von 4     123 4   
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#21

AW: TStringList absteigend sortieren

  Alt 5. Sep 2012, 15:42
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;
Angehängte Dateien
Dateityp: pas NatCompare.pas (2,6 KB, 25x aufgerufen)
Andreas

Geändert von shmia ( 5. Sep 2012 um 15:44 Uhr)
  Mit Zitat antworten Zitat
XxnemesisxX49

Registriert seit: 4. Sep 2012
14 Beiträge
 
#22

AW: TStringList absteigend sortieren

  Alt 5. Sep 2012, 16:02
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?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#23

AW: TStringList absteigend sortieren

  Alt 5. Sep 2012, 16:13
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).
Andreas

Geändert von shmia ( 5. Sep 2012 um 16:16 Uhr)
  Mit Zitat antworten Zitat
XxnemesisxX49

Registriert seit: 4. Sep 2012
14 Beiträge
 
#24

AW: TStringList absteigend sortieren

  Alt 5. Sep 2012, 16:19
Delphi 7
  Mit Zitat antworten Zitat
XxnemesisxX49

Registriert seit: 4. Sep 2012
14 Beiträge
 
#25

AW: TStringList absteigend sortieren

  Alt 5. Sep 2012, 16:20
Delphi 7
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.960 Beiträge
 
Delphi 10.3 Rio
 
#26

AW: TStringList absteigend sortieren

  Alt 5. Sep 2012, 16:24
Hast Du den Quelltext irgendwo reinkopiert, oder die Unit heruntergeladen und unter dem richtigen Namen gespeichert?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
XxnemesisxX49

Registriert seit: 4. Sep 2012
14 Beiträge
 
#27

AW: TStringList absteigend sortieren

  Alt 5. Sep 2012, 16:34
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.

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...

Geändert von XxnemesisxX49 ( 5. Sep 2012 um 16:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.960 Beiträge
 
Delphi 10.3 Rio
 
#28

AW: TStringList absteigend sortieren

  Alt 5. Sep 2012, 16:56
Dann kopier das wieder raus , speichere die Unit unter "NatCompare.pas" in Deinem Delphi-Suchpfad oder dem Projektverzeichnis ab und binde sie in die uses-Klausel ein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
XxnemesisxX49

Registriert seit: 4. Sep 2012
14 Beiträge
 
#29

AW: TStringList absteigend sortieren

  Alt 5. Sep 2012, 17:03
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.960 Beiträge
 
Delphi 10.3 Rio
 
#30

AW: TStringList absteigend sortieren

  Alt 5. Sep 2012, 17:07
Na, einfach dahinter schreiben, mit Komma getrennt.
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, {usw.}, NatCompare;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf