一組檔案名稱(主要以數字命名), 我想按數字大小排序

來源:互聯網
上載者:User
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;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.