2012-04-11 10 views
2

Mögliche Duplizieren:
How to get the sort order in Delphi as in Windows Explorer?Gibt es eine Vergleichsfunktion für die Sortierung von Dateinamen?

ich für eine Funktion bin auf der Suche, die (für Dateisortierung) genau wie der Windows Explorer vergleichen würde der Fall ist. Jetzt bin ich mit CompareText Funktion, aber es ergibt sich folgendes:

--------- /\ --------- 
AFile 
BFile 
_XFile 
----------------------- 

und Windows Explorer, um die gleichen Elemente auf diese Weise sortiert werden (das ist, was ich zu bekommen):

--------- /\ --------- 
_XFile 
AFile 
BFile 
----------------------- 

Gibt es eine Funktion für diese Art des Vergleichens oder sollte ich das selbst handhaben?

Danke!

+0

RRUZ, meine Schuld, tut mir leid. Ich habe abgestimmt, um zu schließen. Beim nächsten Mal werde ich die vorgeschlagenen Spiele aufmerksamer prüfen. Vielen Dank! –

Antwort

7

Windows Explorer verwendet StrCmpLogicalW, um Dateinamen zu vergleichen. Die RTL/VCL deklariert diese Funktion nicht, Sie müssen dies also selbst tun.

function StrCmpLogicalW(psz1, psz2: PWideChar): Integer; stdcall; 
    external 'shlwapi.dll'; 
+0

Danke! Ich habe gesucht, wo diese Funktion definiert ist, aber nur in Winapi.ShlObj Hinweis 'nicht verwenden Sie StrCmpLogical() verwenden Sie stattdessen Standard CompareString()' –

+0

@Martin: Natürlich können Sie diese Funktion verwenden, auch wenn es in keinem deklariert ist '.pas' Datei. –

+0

@Martin Ich habe alles enthalten, was Sie brauchen, um die Funktion jetzt aufzurufen –