ファイルパスに特化した文字列リスト
ファイルパスの比較規則は、通常の文字列のものとは若干異なります。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
戻る