|
悬赏20金钱已解决
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
#NoTrayIcon
$Form1 = GUICreate("递归遍历文件", 660, 369, 191, 121)
$List1 = GUICtrlCreateList("", 0, 8, 649, 266)
$Button1 = GUICtrlCreateButton("查找文件名演示", 248, 280, 153, 33, 0)
$Button2 = GUICtrlCreateButton("查找后缀名文件演示", 32, 280, 161, 33, 0)
$Button3 = GUICtrlCreateButton("遍历所有文件演示", 448, 280, 153, 33, 0)
$Label1 = GUICtrlCreateLabel("搜索状态", 16, 336, 636, 17)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button3
GUICtrlSetData($Label1,"搜索中....")
$patch="c:"
seachfile($patch,"*");;;;;;;;;;;遍历所有文件
GUICtrlSetData($Label1,"搜索完成")
Case $Button2
GUICtrlSetData($Label1,"搜索中....")
$patch="c:"
seachfile($patch,"*","dll");;;;演示查找DLL后缀名文件;
GUICtrlSetData($Label1,"搜索完成")
Case $Button1
GUICtrlSetData($Label1,"搜索中....")
$patch="c:"
seachfile($patch,"*","explorer.exe");;;;;;;;;查找文件名
GUICtrlSetData($Label1,"搜索完成")
EndSwitch
WEnd
Func seachfile($patch,$str,$mask="")
Local $search,$file,$array,$array2,$stt,$stt2
$search = FileFindFirstFile($patch&$str)
If $search Then
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
$array=StringSplit($file,".")
$array2=StringSplit($file,"/")
$stt=$array[UBound($array)-1]
$stt2=$array2[UBound($array2)-1]
if $mask<>"" Then
if $stt=$mask or $stt2=$mask Then
GUICtrlSetData($List1,$patch&$file)
GUICtrlSetData($Label1,$patch&$file)
EndIf
Else
GUICtrlSetData($List1,$patch&$file)
GUICtrlSetData($Label1,$patch&$file)
EndIf
if FileChangeDir( $patch&$file)=1 and $file<>"." and $file<>".." Then
seachfile($patch&$file&"",$str,$mask)
EndIf
WEnd
FileClose($search)
EndIf
EndFunc
这是某大哥写的搜索文件的例子。。。小弟新手。。对其中有些不明白。。求高人解释$array=StringSplit($file,".")
$array2=StringSplit($file,"/")
$stt=$array[UBound($array)-1]
$stt2=$array2[UBound($array2)-1]
这该如何解释。。。用法? |
最佳答案
查看完整内容
$file里存放的字符串 用 . 来分割 成数组 $array
比如 $file = "www.baidu.com"
$array = StringSplit($file,".")
这样就得到 $array[0] = 3 , 拆成了几段
$array[1] = "www"
$array[2] = "baidu"
$array[3] = "com"
同理 $array2=StringSplit($file,"/") 是用 / 来分割
UBound 函数用来得到 数组维度的大小.
例如
Dim $array[10] 定义一个含有10个元素的一位数组 ($array[0]、$array[1]、.......、$array[9])
UBound($ar ...
评分
-
查看全部评分
|