搜索文件内代码$stt=$array[UBound($array)-1]求解释
#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 $searchThen
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
$array=StringSplit($file,".")
$array2=StringSplit($file,"/")
$stt=$array
$stt2=$array2
if $mask<>"" Then
if $stt=$maskor $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
$stt2=$array2
这该如何解释。。。用法? $file里存放的字符串 用 .来分割 成数组 $array
比如$file = "www.baidu.com"
$array = StringSplit($file,".")
这样就得到 $array = 3 , 拆成了几段
$array = "www"
$array = "baidu"
$array = "com"
同理 $array2=StringSplit($file,"/") 是用/来分割
UBound 函数用来得到 数组维度的大小.
例如
Dim $array 定义一个含有10个元素的一位数组 ($array、$array、.......、$array)
UBound($array) 即得到 10
所以$stt=$array
就是 把数组 $array 的最后一个元素的值 给$str 非常谢谢。正迷茫中!解释的很清楚,懂了!谢谢、!真诚的! 谢谢大大们的帮助
页:
[1]