文档章节

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

涂孟超
 涂孟超
发布于 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

没有更多内容

加载失败,请刷新页面

加载更多

秒杀网站系统设计详解

最近总有一些朋友问高并发问题,后来就想自己把一个秒杀系统作为例子详细分解一下,也是一个学习过程。 首先假设场景,预计该活动可能有1万人参加,那最大并发数为1万。 主要面对的问题分析:...

小海bug
20分钟前
2
0
TypeScript基础入门之装饰器(一)

转发 TypeScript基础入门之装饰器(一) 介绍 随着TypeScript和ES6中Classes的引入,现在存在某些场景需要额外的功能来支持注释或修改类和类成员。 装饰器提供了一种为类声明和成员添加注释和元...

durban
30分钟前
1
0
sed命令扩展使用操作

打印某行到某行之间的内容 假若文件test.txt的内容是: ertfff**[abcfd]123324444[rty]**fgfgf 怎么能截取 [abcfd]123324444[rty] 这一部分出来呢? 操作命令: 知道开始行和结...

野雪球
46分钟前
1
0
JVM内存笔记

Hotspot JVM 中的 Java 线程与原生操作系统线程有直接的映射关系。当线程本地存储、缓 冲区分配、同步对象、栈、程序计数器等准备好以后,就会创建一个操作系统原生线程。 Java 线程结束,原...

凌渡
52分钟前
1
0
284. Peeking Iterator

Description Tag: Design Difficulties: Medium Given an Iterator class interface with methods: next() and hasNext(), design and implement a PeekingIterator that support the pee......

52iSilence7
54分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部