本文主要是介绍一组文件名(主要以数字命名), 我想按数字大小排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一组文件名(主要以数字命名), 我想按数字大小排序
uses System.IOUtils, System.Types, System.Generics.Collections, System.Generics.Defaults, System.Character;
procedure StrArrNumberSort(var Arr: TArray<string>);
begin
TArray.Sort<string>(Arr,
TComparer<string>.Construct(
function (const s1,s2: string): Integer
var
L1,L2: string;
begin
L1 := TPath.GetFileNameWithoutExtension(s1);
L2 := TPath.GetFileNameWithoutExtension(s2);
if (IsDigit(L1[1]) and IsDigit(L2[1])) then
Result := StrToIntDef(L1, 0) - StrToIntDef(L2, 0)
else
Result := CompareText(L1, L2);
{考虑嵌套目录}
L1 := TPath.GetDirectoryName(s1);
L2 := TPath.getDirectoryName(s2);
Result := CompareText(L1, L2) * MaxWord + Result;
end
)
);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
arr: TArray<string>;
s: string;
begin
arr := TArray<string>(TDirectory.GetFiles('c:\temp'));
StrArrNumberSort(arr);
for s in arr do Memo1.Lines.Add(s);
end;
posted on
2012-02-10 15:57
万一
阅读(6799)
评论(1)
编辑
收藏
这篇关于一组文件名(主要以数字命名), 我想按数字大小排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!