![]() |
Delphi-Version: 7
TStringList absteigend sortieren
Guten Abend zusammen,
ich habe nun schon sämtliche Foren durchkämmt, doch finde keine Lösung für mein Problem. Ich möchte Werte in einer TStringlist absteigend sortieren. Bisher habe ich es mit dem Code unten versucht, jedoch werden die Werte wie folgt sortiert: 22 20000 200 20
Code:
Ich hätte sie aber gerne so sortiert:
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; 20000 200 22 20 Ich hoffe ihr könnt mir weiterhelfen und schon mal vielen Dank im Voraus :-D |
AW: TStringList abwertend sortieren
Du vergleichst ja auch Zeichen und keine Ganzzahlen.
|
AW: TStringList abwertend sortieren
Gibt es eine Möglichkeit ganze Zahlen zu vergleichen?
|
AW: TStringList abwertend sortieren
Klar. Mit <, > und =.
|
AW: TStringList abwertend sortieren
Kann ich den Code, den ich gepostet hab, irgendwie so umändern, dass er tut was ich will :-D
|
AW: TStringList abwertend sortieren
Zitat:
z.B., wenn man vor dem Vergleich die Strings in Zahlen umwandelt. :roll: |
AW: TStringList abwertend sortieren
Schau die an, welche Ergebnisse AnsiCompareStr liefert und schreib' die Function so um, daß du diese Ergebnisse hast, indem du StrToInt(List[Index1]) mit StrToInt(List[Index2]) vergleichst. Es gibt drei Fälle.
Delphi-Quellcode:
function Compare(List: TStringList; Index1, Index2: Integer): Integer;
begin Result:= ?; if StrToInt(List[Index1]) > StrToInt(List[Index2]) then Result:= ? else if StrToInt(List[Index1]) < StrToInt(List[Index2]) then Result:= ?; end; |
AW: TStringList abwertend sortieren
Man könnte die Strings in der Lise in Zahlen umwandeln und vergleichen oder in(nerhalb) der Vergleichsfunktion links mit nullen auffüllen. Weiß nicht, ob's da einen Befehl für gibt, bei OracleSQL wär das LPAD.
|
AW: TStringList abwertend sortieren
Zitat:
![]() PS: Teilweise kennt Delphi auch noch andere Funktionen, welche soein Ergebnis liefern. ![]() |
AW: TStringList abwertend sortieren
Juhu, es funktioniert, danke :-D
Ich hab noch eine Frage. Wenn ich jetzt Zahlen mit Namen sortieren will, funktioniert die Methode nicht mehr, weil die Namen ja keine Integers sein können. Bsp.: 2000 Peter 500 Hans 20 Alex Gibt's da auch eine Lösung, die nicht all zu schwer ist? :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 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