相关疑难解决方法(0)

如何在Windows资源管理器中获取Delphi中的排序顺序?

综述:

  1. 我一直在寻找的术语似乎是"自然的排序".
  2. 对于操作系统中的行为:

    • 对于Windows(版本> = XP),Windows资源管理器使用自然排序.
    • 对于Linux终端:使用"ls -v"而不是普通的"ls"来获得自然排序.
  3. 对于Delphi中的编程,使用StrCmpLogicalW Windows API进行自然排序.

  4. 对于Delphi和Kylix&Lazarus中的编程,使用手工制作的函数进行自然排序:

==========================

将在Windows资源管理器中订购以下文件名,如下所示:

test_1_test.txt

test_2_test.txt

test_11_test.txt

test_12_test.txt

test_21_test.txt

test_22_test.txt

例如,如果我将它们放在TStringList实例中并调用Sort,则排序顺序如下:

test_1_test.txt

test_11_test.txt

test_12_test.txt

test_2_test.txt

test_21_test.txt

test_22_test.txt

为了记录,上述文件名将在Cygwin的rxvt终端或Linux发行版的xterm终端(如CentOS)中进行排序,如下所示:

test_11_test.txt

test_12_test.txt

test_1_test.txt

test_21_test.txt

test_22_test.txt

test_2_test.txt

您能否帮助评论如何理解排序行为的这种差异?此外,是否可以获得与Windows资源管理器中相同的顺序?任何建议表示赞赏!

PS:我的Windows语言环境设置为中文,但我认为英语语言环境也是如此.

windows delphi sorting collation

17
推荐指数
2
解决办法
3491
查看次数

标签 统计

collation ×1

delphi ×1

sorting ×1

windows ×1