ファイルパスに特化した文字列リスト

ファイルパスの比較規則は、通常の文字列のものとは若干異なります。TStringListクラスでファイパスを扱おうとしても、Sortedプロパティが適切に働きません。ファイルパスに特化した文字列リストを作成するには、例えば、次のようにします。
FilePathList.h:

//---------------------------------------------------------------------------
#ifndef FilePathListH
#define FilePathListH
#include <Classes.hpp>
//---------------------------------------------------------------------------
class TFilePathList : public TStringList
{
private:
        virtual int __fastcall CompareStrings(const AnsiString S1, const AnsiString S2);
        __property bool CaseSensitive = {};
protected:
public:
        __fastcall TFilePathList();
        virtual __fastcall ~TFilePathList();
};
//---------------------------------------------------------------------------
#endif

FilePathList.cpp :

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "FilePathList.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// class TFilePathList : public TStringList
//---------------------------------------------------------------------------
// private:
//---------------------------------------------------------------------------
int __fastcall TFilePathList::CompareStrings(const AnsiString S1, const AnsiString S2)
{
        return AnsiCompareFileName(S1, S2);
}
//---------------------------------------------------------------------------
// protected:
//---------------------------------------------------------------------------
// public:
//---------------------------------------------------------------------------
__fastcall TFilePathList::TFilePathList() :
        TStringList()
{
        // Do nothing
}
//---------------------------------------------------------------------------
__fastcall TFilePathList::~TFilePathList()
{
        // Do nothing
}
//---------------------------------------------------------------------------
最終更新: 2008-07-05

戻る