求助返回字符串的问题
本帖最后由 sky808 于 2010-1-10 14:18 编辑我写了个查找程序,但是在调用函数时却无法返回字符串,麻烦高手指点!
代码:
MsgBox(0,"ok",Seek(@WindowsDir,"Bliss.jpg"))
Func Seek($Dir,$Key)
If StringRight($Dir,1)<>"\" Then $Dir=$Dir&"\"
$search=FileFindFirstFile($Dir&"*.*")
While 1
$File=FileFindNextFile($search)
If @error Then ExitLoop
If StringInStr(FileGetAttrib($Dir&$File),"D") Then
Seek($Dir&$File,$Key)
If FileExists($Dir&$File&"\"&$Key) Then
Local $Exist=$Dir&$File&"\"&$Key
;MsgBox(0,"ok",$Exist)
Return $Exist
EndIf
EndIf
WEnd
FileClose($search)
EndFunc
测试保证查找到相关文件,问题无法返回!
多谢回答!!! 递归了,得把参数拿出来 改了下,你试试~~MsgBox(0, "ok", Seek(@WindowsDir,"Bliss.jpg"))
Func Seek($Dir, $key)
Global $skey = $key, $Exist
Stmp($Dir)
Return $Exist
EndFunc ;==>Seek
Func Stmp($Dir)
If StringRight($Dir, 1) <> "\" Then $Dir = $Dir & "\"
$search = FileFindFirstFile($Dir & "*.*")
While 1
$file = FileFindNextFile($search)
If @error Then
FileClose($search)
Return $Exist
ElseIf StringInStr(FileGetAttrib($Dir & $file), "D") Then
Stmp($Dir & $file)
EndIf
If $file = $skey Then
FileClose($search)
$Exist &= $Dir & $skey & @CRLF
EndIf
WEnd
Return $Exist
EndFunc ;==>Stmp 多谢了,怎么递归得把参数拿出来呢
拿出固定的参数吗?也就是 $Key 把 $Exist 定义为全局函数 也可以,1楼的代码我改了一下:
dim $Exist
MsgBox(0,"ok",Seek(@WindowsDir,"Bliss.jpg"))
Func Seek($Dir,$Key)
If StringRight($Dir,1)<>"\" Then $Dir=$Dir&"\"
$search=FileFindFirstFile($Dir&"*.*")
While 1
$File=FileFindNextFile($search)
If @error Then ExitLoop
If StringInStr(FileGetAttrib($Dir&$File),"D") Then
Seek($Dir&$File,$Key)
If FileExists($Dir&$File&"\"&$Key) Then
$Exist=$Dir&$File&"\"&$Key
;MsgBox(0,"ok",$Exist)
EndIf
EndIf
WEnd
Return $Exist
FileClose($search)
EndFunc 今天的评分系统貌似瘫痪了……
LS的办法也OK~ 还有,正好有个专门针对搜索的分析帖子,LZ可以看看先~
http://www.autoitx.com/forum.php?mod=viewthread&tid=12087 传说中的超级版主真是名不虚传呀! 已经写好了,感谢各位回答.
用的就是global 全局。
页:
[1]