文档章节

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

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 127
阅读 11
收藏 0

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;

本文转载自:http://www.cnblogs.com/del/archive/2012/02/10/2345559.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
shell特殊符号、cut/sort/wc/uniq/tee/tr/split命令

特殊符号 * 代表零个或多个任意字符 ? 代表一个任意字符 #注释符号,后面的内容会被忽略 脱义字符会把后面的特殊符号还原为普通字符 管道符 用作将前面的命令输出作为后面命令的输入 命令cut...

黄昏残影
07/02
0
0
8.10 shell特殊符_cut命令;8.11 sort wc uniq命令;8.12 tee

8.10 shell特殊符_cut命令 1. 特殊符号: cut命令: -d(分隔符) -f(指定段号) -c(指定第几个字符) 1. 显示前两行,以:(冒号)分割,1,2,3,4段: [root@hao-02 ~]# cat /etc/passwd |head -2 |c...

主内安详
01/12
0
0
DOS获取文件夹里的文件名

DOS命令窗口:开始-cmd-回车,进入DOS命令窗口案例一、获取文件名 dir 1、输入"文件所在盘",回车,如:d: 2、输入"cd 文件夹位置",回车,如:cd D:网页抓取 3、输入"dir /b>文件名.后缀名"...

老男孩733
2016/11/05
6
0
shell特殊符号、cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号下

shell特殊符号 cut命令(截取列) -d 指定分隔符 -f 指定截取列 -c 指定第几个字符 sortwcuniq命令 sort 排序(不加选项按数字,字母顺序排序) -n 按数字顺序排序,字母比数字小 -r反向排序...

linux运维影魔
03/07
0
0
每天一条linux命令 - ls

系统:centos 6.5 ls 是比较常用的命令之一,默认打印当前目录清单。 参数如下: 选项 说明 列出目录下所有文件,包括以 . 开头的隐藏文件 把文件名中不可输出的字符用反斜杠加字符编号(就像...

cosco
2016/12/03
11
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周日乱弹 —— 种族不同,禁止交往

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《苏菲小姐》- 鱼果 《苏菲小姐》- 鱼果 手机党少年们想听歌,请使劲儿戳(这里) @貓夏:下大雨 正是睡觉的好时候 临睡前...

小小编辑
33分钟前
32
5
Python 搭建简单服务器

Python动态服务器网页(需要使用WSGI接口),基本实现步骤如下: 1.等待客户端的链接,服务器会收到一个http协议的请求数据报 2.利用正则表达式对这个请求数据报进行解析(请求方式、提取出文...

代码打碟手
36分钟前
0
0
Confluence 6 删除垃圾内容

属性(profile)垃圾 属性垃圾的定义为,一个垃圾用户在 Confluence 创建了用户,但是这个用户在自己的属性页面中添加了垃圾 URL。 如果你有很多垃圾用户在你的系统中创建了属性,你可以使用...

honeymose
今天
0
0
qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这...

虚拟世界的懒猫
今天
1
0
UML中 的各种符号含义

Class Notation A class notation consists of three parts: Class Name The name of the class appears in the first partition. Class Attributes Attributes are shown in the second par......

hutaishi
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部