custom sort-Methode in Delphi zur Liste Sortieren von strings
Ich versuche zu Sortieren, eine Liste der Dateien (Sie gespeichert sind, als Liste von strings) in Delphi, deren Namen wie folgt Aussehen
a_1.xml
a_20.xml
a_10.xml
a_2.XML
wenn ich schnelle Art zu sort
den Datei-Namen, sortiert das System die Datei-Namen wie unten
a_1.xml
a_10.xml
a_2.xml
a_20.XML
Aber, ich möchte die Dateinamen werden sortiert in der unten Mode
a_1.xml
a_2.xml
a_10.xml
a_20.XML
Jede Hilfe wird sehr geschätzt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die gleichen compare-Funktion, die Explorer verwendet, nämlich
StrCmpLogicalW
.Wenn Sie Ihre Saiten in einem
TStringList
- Instanz können Sie dieCustomSort
Methode. Diese erwartet eine compare-Funktion von dieser form:So, feed
CustomSort
diese Funktion:'shlwapi.dll'
manipuliert wurde oder fehlt. Dann funktioniert die Anwendung nicht.'shlwapi.dll'
DLL enthält Funktionen für UNC-und URL-Pfade, registry-Einträge und Farbeinstellungen .. warum manipulieren Sie diese Datei auf application starten ?StrCmpLogicalW()
Funktion ??Eine leichte Lösung, angepasst an Ihre genaue situation ist wie folgt:
Die Antwort von Andreas Rejbrand war ok. Aber besser, Sie verwenden meine compare-Funktion für die Allgemeine Verwendung:
Als ich dies schrieb einer vor ein paar Jahren als Antwort hier. Es ist ein bisschen langwierig, aber es funktioniert der trick.
[Bearbeiten]
Aber warum die Mühe, wenn David wach ist. :p zu meiner Verteidigung, damals viele Leute nicht haben, Windows XP, das ist die version, in der StrCmpLogicalW eingeführt wurde.