找回密码
 加入
搜索
查看: 5766|回复: 9

[效率算法] 排序以毫秒级时间命名的文件(已解决)精神崩溃中

  [复制链接]
发表于 2012-6-2 06:54:52 | 显示全部楼层 |阅读模式
本帖最后由 nmgwddj 于 2012-6-2 12:26 编辑

近日无聊,帮朋友做了个工具,就是将一个目录下的所有文件按时间排序排列出来,文件创建时间和修改时间都不靠谱。
但文件名称是以时间命名的,年-月-日-时-分-秒-毫秒。所以想了想只能通过时间来判断文件做排序。
我自己虽然做出来了,但是因为思路太有局限性、太笨拙,效率也是很大的问题,所以贴上来学习一下各位的思路。下面是我自己做出来的效果和相关几个文件,大家可以下载自己搞搞看,期待各位思路。

做出来的效果也就是这样的。


所需文件:

伤心崩溃中,竟然如此简单!!!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-6-2 10:28:58 | 显示全部楼层
不知道你咋写的 要是我写 就直接存数组,然后 _ArraySort 搞定收工 !
 楼主| 发表于 2012-6-2 10:52:24 | 显示全部楼层
回复 2# ashfinal


    靠,竟然这么简单,浪费了我不知道多少时间。。。。。
发表于 2012-6-2 10:54:04 | 显示全部楼层
对比后边时间字符窜的大小如何?
发表于 2012-6-2 10:58:27 | 显示全部楼层
不多说了,直接上码
#include <File.au3>
#include <Array.au3>
Local $FileList = _FileListToArray(@ScriptDir, "*.txt", 1)
Local $nFileList[UBound($FileList) - 1][2]
For $i = 1 To UBound($FileList) - 1
        $nFileList[$i - 1][0] = $FileList[$i]
        $nFileList[$i - 1][1] = StringRight($FileList[$i], 22)
Next
_ArraySort($nFileList, 0, 0, 0, 1)
Local $fFileList[UBound($nFileList)+1]
For $i =1 To UBound($nFileList)
        $fFileList[$i] = $nFileList[$i - 1][0]        
Next
_ArrayDisplay($fFileList, "$fFileList")
发表于 2012-6-2 11:08:05 | 显示全部楼层
回复 3# nmgwddj


所以说思路很重要 嘿嘿~
 楼主| 发表于 2012-6-2 11:14:09 | 显示全部楼层
回复 6# ashfinal


    崩溃啊,我竟然一个一个日期去对比。
 楼主| 发表于 2012-6-2 11:15:47 | 显示全部楼层
回复 5# shqf


    我在崩溃中,打击死我了。。。。
发表于 2012-6-2 12:11:22 | 显示全部楼层
哈哈 被污蔑了
发表于 2014-9-22 11:46:19 | 显示全部楼层
额,学习,学习,感谢,感谢,非常感谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-14 03:51 , Processed in 0.085141 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表