sky808 发表于 2010-1-9 20:55:47

求助返回字符串的问题

本帖最后由 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

测试保证查找到相关文件,问题无法返回!
多谢回答!!!

afan 发表于 2010-1-9 21:27:18

递归了,得把参数拿出来

afan 发表于 2010-1-9 21:40:14

改了下,你试试~~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

sky808 发表于 2010-1-9 21:55:56

多谢了,怎么递归得把参数拿出来呢
拿出固定的参数吗?也就是 $Key

C.L 发表于 2010-1-9 22:08:41

把 $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

afan 发表于 2010-1-9 22:31:22

今天的评分系统貌似瘫痪了……

LS的办法也OK~ 还有,正好有个专门针对搜索的分析帖子,LZ可以看看先~
http://www.autoitx.com/forum.php?mod=viewthread&tid=12087

hzxymkb 发表于 2010-1-10 00:11:41

传说中的超级版主真是名不虚传呀!

sky808 发表于 2010-1-10 14:16:20

已经写好了,感谢各位回答.
用的就是global 全局。
页: [1]
查看完整版本: 求助返回字符串的问题