delphi 字符串、文件路径 排序算法  
官方Delphi 学习QQ群: 682628230(三千人)
频道

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;

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.048243999481201 seconds