文档章节

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

涂孟超
 涂孟超
发布于 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
深圳
程序员
私信 提问
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
shell特殊符号、cut/sort/wc/uniq/tee/tr/split命令

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

黄昏残影
07/02
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

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 配置边栏

如果你具有空间的管理员权限,你可以对空间的变量进行自定义,让你的空间具有自己的空间标识(logo),修改显示的继承关系和在空间中添加快捷方式以帮助用户在空间中进行快速导航。 希望开始...

honeymose
7分钟前
0
0
Ubuntu18.04 安装MySQL

1.安装MySQL sudo apt-get install mysql-server 2.配置MySQL sudo mysql_secure_installation 3.设置MySQL非root用户 设置原因:配置过程为系统root权限,在构建MySQL连接时出现错误:ERROR...

AI_SKI
今天
3
0
3.6 rc脚本(start方法) 3.7 rc脚本(stop和status方法) 3.8 rc脚本(以daemon方式启动)

3.6-3.7 rc脚本(start、stop和status方法) #!/usr/bin/env python# -*- coding: utf-8 -*-# [@Version](https://my.oschina.net/u/931210) : python 2.7# [@Time](https://my.oschina.......

隐匿的蚂蚁
今天
3
0
Cnn学习相关博客

CNN卷积神经网络原理讲解+图片识别应用(附源码) 笨方法学习CNN图像识别系列 深度学习图像识别项目(中):Keras和卷积神经网络(CNN) 卷积神经网络模型部署到移动设备 使用CNN神经网络进行...

-九天-
昨天
5
0
flutter 底部输入框 聊天输入框 Flexible

想在页面底部放个输入框,结果键盘一直遮住了,原来是布局问题 Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("评论"), ...

大灰狼wow
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部