- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi 字符串、文件路径 排序算法
//正序
function SortItem(List: TStringList; Index1, Index2: Integer): Integer;
var A1, A2: String;
Dir1, Dir2: String;
Name1, Name2: String;
begin//delphitop.com
A1 := List[Index1];
A2 := List[Index2];
Dir1 := ExtractFilePath(A1);
Dir2 := ExtractFilePath(A2);
Name1 := ExtractFileName(A1);
Name2 := ExtractFileName(A2);
if Dir1 = Dir2 then
Result := AnsiCompareText(Name1, Name2)
else
Result := AnsiCompareText(Dir1, Dir2);
end;
//倒序
function SortItem2(List: TStringList; Index1, Index2: Integer): Integer;
var A1, A2: String;
Dir1, Dir2: String;
Name1, Name2: String;
begin
A1 := List[Index1];
A2 := List[Index2];
//delphitop.com
Dir1 := ExtractFilePath(A1);
Dir2 := ExtractFilePath(A2);
Name1 := ExtractFileName(A1);
Name2 := ExtractFileName(A2);
if Dir1 = Dir2 then
Result := AnsiCompareText(Name2,Name1 )
else
Result := AnsiCompareText(Dir2, Dir1);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
FList: TStringList;
begin
FList:=TStringList.Create;
FList.Text:=Memo1.Text;
FList.CustomSort(SortItem);
Memo1.Text:=FList.Text;
end;