请教搜索文件和日期比较的问题
本帖最后由 zz999 于 2010-1-8 10:48 编辑我想搜索某一指定文件下的指定文件类型!
如果是按年月日日期命名的进行日期比较,输出最大的那个日期.
ELSE
随机输出一个!
没有找到好用的搜索UDF
并且对日期比较不懂,特请教AFAN大哥和顽固大哥以及各位大虾们! 好像需要说得详细点,比如具体的文件名?还有在什么情况下随机输出?等 回复 2# afan
搜索TXT文件
如果搜索到的TXT为 2010-01-07 这种日期格式的
就进行比较这个是不是直接替换"-"字符,然后直接比较数值大小就行了吧?
否则就随机输出(MSGBOX)任意一个TXT文件名 回复 3# zz999
你的意思是如果文件夹里没有一个 "2010-01-07.txt" 这种日期格式的就随机输出一个?
有的话就输出日期最近的那个~?
但如果有日期格式的和别的格式的如何处理?还是如果只有一个日期格式的就输出它? 回复 4# afan
只有一个日期格式
就是2010-01-07这种格式
如果有这种格式就比较然后输出最大的 那个
如果没有就随便输出一个txt文件名!
主要不懂怎么搜索 本帖最后由 afan 于 2010-1-7 23:30 编辑
回复 5# zz999 #include <File.au3>
Local $path = 'C:\test'
Local $a = FileSearch($path)
If $a <> -1 Then
MsgBox(64, '日期最近的文件', $a)
Else
$a = _FileListToArray($path, '*.txt', 1)
If @error Then Exit (MsgBox(48, '郁闷', '毛都没找到……'))
If UBound($a) <= 2 Then MsgBox(48, '郁闷,总共就一个txt,没法随机', $a)
If UBound($a) > 2 Then MsgBox(0, '随机文件', $a)
EndIf
Func FileSearch($searchdir)
$search = FileFindFirstFile($searchdir & "\*-*-*.txt")
If $search = -1 Then Return -1
While 1
$file = FileFindNextFile($search)
If @error Then
FileClose($search)
Return $fmax
EndIf
$fmax = $file
WEnd
EndFunc ;==>FileSearch不用比较,搜索是按文件名排序搜索的 谢谢AFAN超版! 绝对的好心人! 回复 7# zz999
也可以不循环搜索,直接用 _FileListToArray()#include <File.au3>
Local $path = 'C:\test'
Local $a = _FileListToArray($path, '*-*-*.txt', 1)
If Not @error Then
MsgBox(64, '日期最近的文件', $a)
Else
$a = _FileListToArray($path, '*.txt', 1)
If @error Then Exit (MsgBox(48, '郁闷', '毛都没找到……'))
If UBound($a) <= 2 Then MsgBox(48, '郁闷,总共就一个txt,没法随机', $a)
If UBound($a) > 2 Then MsgBox(0, '随机文件', $a)
EndIf 读取,文件的最后修改日期,或创建日期不好吗?
然后用冒泡的算法,顶出最大了. 谢谢楼上的
因为不会用搜索!
再次感谢!
页:
[1]