|
//아이템 정보
class TFileInfo : public TObject
{
public:
__fastcall TFileInfo();
AnsiString strFileName;
AnsiString strFileExtName;
};
__fastcall TFileInfo::TFileInfo()
{
strFileName = "";
strFileExtName = "";
}
//정렬 함수
int __fastcall CompareProc(void * Item1, void * Item2)
{
return strcmp((char *)((TFileInfo *)Item1)->strFileName.c_str(),
(char *)((TFileInfo *)Item2)->strFileName.c_str());
}
//파일정보 입력
TList *pList = new TList;
FindFirst(gPath+"*.*", faAnyFile, SearchRec);
do
{
TFileInfo *tInfo = new TFileInfo;
tInfo->strFileName = SearchRec.Name;
pList->Add(tInfo);
}while((FindNext(SearchRec) == 0));
FindClose(SearchRec);
pList->Sort(CompareProc);
--------------------------------------
위와 같이 폴더당 파일 이름을 얻어와 TList를 이용하여 리스트를 구현 하였습니다. 정렬 방법을 고민하다, TList의 sort기능 있다는걸 보고 게시판을 검색하여 sort방법을 구현 하였습니다
근대 정렬 결과가 탐색기랑 비교햇을때 다르게 나오더군여
#탐색기 d:드라이브로 볼시
__Ex__
유틸들
windows
#pList 소트시 보기
windows
__Ex__
유틸들
위와 같은식으로 영문이 먼저 정렬되고 그리고 특수 문자가 정렬되고 한글폴더명이 정리되는것 같은데요..
어떻게 하면 탐색기와 같이 특수 문자 정렬휴 한글 정렬후 영문으로 정렬되나요??
TList의 sort를 이용하지 않고 따로 정렬 루틴을 구현해주어야하는건가요??
궁금합니다..
|