打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一组文件名(主要以数字命名), 我想按数字大小排序

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;

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
delphi 获取网络文件大小
Delphi自动检测U盘插入
Delphi版的Base64转换函数
delphi中的键值对, 自制Hashtable
转贴:DELPHI编写服务程序总结三
delphi 简体和繁体字符串转换
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服