文档章节

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

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 127
阅读 11
收藏 0
点赞 0
评论 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
博文 2004
码字总数 14107
作品 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

DOS获取文件夹里的文件名

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

老男孩733 ⋅ 2016/11/05 ⋅ 0

shell特殊符号、cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号下

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

linux运维影魔 ⋅ 03/07 ⋅ 0

每天一条linux命令 - ls

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

cosco ⋅ 2016/12/03 ⋅ 0

磁盘目录占用空间计算排序工具 - ncdu

ncdu介绍 原来说过使用du命令如何查看磁盘目录及文件的使用情况,今天要的还是一款磁盘目录占用空间情况的工具,但是这款工具更方便更好用 -ncdu。ncdu命令是对传统du命令功能上的增强,不需...

芒果龙 ⋅ 2011/11/05 ⋅ 0

linux的ls命令

ls命令是linux下最常用的命令之一。它时list的缩写,缺省下ls用来打印出当前目录下的清单,如果ls指定其他目录,那么就会显示指定的目录里的文件及文件夹清单。 我们可以用它来查看文件的各种...

有些服务器 ⋅ 2015/07/22 ⋅ 0

如何在mysql中实现自然排序

背景 熟悉mysql的同学应该清楚,mysql在对字符串做order by排序时是按照字典序进行排序的,但是如果字符串中包含数字的话(我们称这种类型的字符串为alphanumeric),仅按照字典序的排序结果...

wooyoo ⋅ 2017/04/16 ⋅ 0

shell3

特殊符号 #注释 不会生效 脱义 当成普通字符 管道命令 cut 截取 指定第几个字符 排序 sort -n 按数字排序 字母和t特殊符号默认为零 -r反序 wc -l 行数 wc -m 字数 cat -A 查看所以内容 wc -...

yongqiao ⋅ 01/12 ⋅ 0

如何在mysql中实现自然排序

背景 熟悉mysql的同学应该清楚,mysql在对字符串做order by排序时是按照字典序进行排序的,但是如果字符串中包含数字的话(我们称这种类型的字符串为alphanumeric),仅按照字典序的排序结果...

wooyoo ⋅ 2017/04/16 ⋅ 0

java中如何按照顺序获取文件夹内的文件名

如何按照顺序读取文件夹内的文件名: 如输出(1.jpg、2.jpg、3.jpg、10.jpg、11.jpg、20.jpg、21.jpg、31.jpg) // 对 list 排序 Collections.sort(imgURList); 但是输出的是:(1.jpg、10....

天涯共明月 ⋅ 2017/03/30 ⋅ 4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Netweaver和SAP云平台的quota管理

Netweaver 以需要为一个用户上下文(User Context)能够在SAP extended memory区域中分配内存尺寸创建quota为例。 对于Dialog工作进程,使用事务码修改参数 ztta/roll_extension_dia. 对于非D...

JerryWang_SAP ⋅ 8分钟前 ⋅ 0

IDEA提示编码速度

焦点移动 将焦点冲代码编辑窗口移动到菜单栏:Alt+菜单栏带下划线字母 将焦点从工具窗口移动到代码编辑窗口 Esc或Shift+Esc 将焦点从代码编辑移动到最近使用的工具窗口 F12 模板提示 Ctrl+J...

bithup ⋅ 17分钟前 ⋅ 0

180623-SpringBoot之logback配置文件

SpringBoot配置logback 项目的日志配置属于比较常见的case了,之前接触和使用的都是Spring结合xml的方式,引入几个依赖,然后写个 logback.xml 配置文件即可,那么在SpringBoot中可以怎么做?...

小灰灰Blog ⋅ 41分钟前 ⋅ 0

冒泡排序

原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第...

人觉非常君 ⋅ 47分钟前 ⋅ 0

Vagrant setup

安装软件 brew cask install virtualboxbrew cask install vagrant 创建project mkdir -p mst/vmcd mst/vmvagrant init hashicorp/precise64vagrant up hashicorp/precise64是一个box......

遥借东风 ⋅ 今天 ⋅ 0

python3.6 安装pyhook_3

我的是在win下的,忙了半天老是安装不了, pip install 也不行。 那么可以看出自己的版本是32bit 一脸懵逼 没办法 只好下载32版本的来安装 我一直以为 是 对应32 位的 。 下面是 小例子 http...

之渊 ⋅ 今天 ⋅ 0

004、location正则表达式

1、location的作用 location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。 2、location的语法 = 开头表示精确匹配 ^~...

北岩 ⋅ 今天 ⋅ 0

CentOS7 静默安装 Oracle 12c

环境 CentOS7.5 最小安装 数据库软件 linuxx64_12201_database.zip 操作系统配置 关闭 SELinux sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config 关闭防火墙 systemctl disable ......

Colben ⋅ 今天 ⋅ 0

Yii2中findAll()的正确使用姿势/返回为空的处理办法

从一次错误的操作开始 $buildingObject = Building::findAll("status=1"); 1 这个调用看着没有任何毛病,但是在使用时返回的结果却是一个空数组。再回过头来看看数据表中: 按照套路来讲,查...

dragon_tech ⋅ 今天 ⋅ 0

如何优雅的编程——C语言界面的一点小建议

我们鼓励在编程时应有清晰的哲学思维,而不是给予硬性规则。我并不希望你们能认可所有的东西,因为它们只是观点,观点会随着时间的变化而变化。可是,如果不是直到现在把它们写在纸上,长久以...

柳猫 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部