![]() |
AW: Numerische höchster Stringwert
Moin Moin.
Ich habe jetzt wie vorgeschlagen die Zahlen aus den Dateinamen separiert und mit FileNumbersList.CustomSort(SortStringListOfInteger ); sortiert.
Delphi-Quellcode:
Der Code ist mehrfach im Netz zu finden.
function SortStringListOfInteger(List: TStringList; Index1, Index2: Integer): Integer;
var Value1, Value2: Integer; begin Value1 := StrToInt(List[Index1]); Value2 := StrToInt(List[Index2]); if Value1 < Value2 then Result := -1 else if Value2 < Value1 then Result := 1 else Result := 0; end; Was ich eben brauchte war Eure Hilfe um zu verstehen was ich machen muss bzw wonach man suchen kann. Vielen Dank!! creehawk |
AW: Numerische höchster Stringwert
Verstehe ich das richtig? Du separierst aus der Original-Stringlist die Zahlen, packst diese in eine neue Stringlist, und sortierst diese, indem du die Strings darin zu Integer umwandelst? Kann man machen ... ist aber irgendwie von hinten durch die Brust ins Auge. :stupid:
So sollte es "direkt" gehen:
Delphi-Quellcode:
function SortStringListOfInteger(List: TStringList; Index1, Index2: Integer): Integer;
begin Result := CompareString(LOCALE_USER_DEFAULT, SORT_STRINGSORT or SORT_DIGITSASNUMBERS, PChar(List[Index1]), Length(List[Index1]), PChar(List[Index2), Length(List[Index2)) - CSTR_EQUAL; end; |
AW: Numerische höchster Stringwert
Jupp, sollte es, da Windows ja das "Gleiche" schon fertig erledigt.
PS:
Delphi-Quellcode:
function SortStringListOfInteger(List: TStringList; Index1, Index2: Integer): Integer;
begin Result := CompareValue(StrToInt(List[Index1]), StrToIntDef(List[Index2])); // StrToIntDef( ,0) oder ,MaxInt) oder ,MinInt) falls mal Fehler und keine Zahl drin end; |
AW: Numerische höchster Stringwert
Das ganze nennt sich übrigens
![]() Kann man auch ![]()
Delphi-Quellcode:
auf.
NORM_IGNORECASE or SORT_DIGITSASNUMBERS
|
AW: Numerische höchster Stringwert
@gausi
Okay, von hinten durch die Brust ins Auge, kann man so sagen. Aber den Code verstehe ich ohne Probleme. Deine Lösung müsste ich erstmal ausgiebig ventilieren. Bin ich jetzt gerade zu faul für.... :duck: @himitsu .... und da ist die einfache Lösung. DAS war es was ich gesucht habe. Sehr schön. Vielen Dank. :-D creehawk |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 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