2012-04-11 10 views
2

可能性の重複:
How to get the sort order in Delphi as in Windows Explorer?ファイル名ソートの比較機能はありますか?

私は、Windowsエクスプローラがまったく同じように(ファイルのソート用)を比較しまう機能を探しています。今、私はCompareText機能を使用していますが、それは次のようになり:

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

また、Windowsエクスプローラが(それは私が手に入れたいものだ)同じ項目をこのように並べ替える:

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

がありますこの種の比較のための関数、または私はこれを自分自身で扱うべきですか?

ありがとうございます!

+0

RRUZ、私の誤り、申し訳ありません。私は閉会に投票しました。次回は、提案された試合をより注意深くチェックします。ありがとう! –

答えて

7

Windowsエクスプローラは、ファイル名を比較するのにStrCmpLogicalWを使用します。 RTL/VCLはこの機能を宣言していないので、自分で処理する必要があります。

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

ありがとう!私はこの関数がどこに定義されているのか探していましたが、Winapi.ShlObjにしか見つかりませんでした。 'StrCmpLogical()はデフォルトのCompareString()を使用しないでください。 –

+0

@Martin:もちろん、この関数を宣言していなくても'.pas'ファイル。 –

+0

@Martinあなたが関数を呼び出すために必要なものすべてを含めました。 –

関連する問題