找回密码
 加入
搜索
查看: 1529|回复: 7

求助返回字符串的问题

  [复制链接]
发表于 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

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

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-1-9 21:27:18 | 显示全部楼层
递归了,得把参数拿出来
发表于 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
 楼主| 发表于 2010-1-9 21:55:56 | 显示全部楼层
多谢了,怎么递归得把参数拿出来呢
拿出固定的参数吗?也就是 $Key
发表于 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
发表于 2010-1-9 22:31:22 | 显示全部楼层
今天的评分系统貌似瘫痪了……

LS的办法也OK~ 还有,正好有个专门针对搜索的分析帖子,LZ可以看看先~
http://www.autoitx.com/forum.php?mod=viewthread&tid=12087
发表于 2010-1-10 00:11:41 | 显示全部楼层
传说中的超级版主真是名不虚传呀!
 楼主| 发表于 2010-1-10 14:16:20 | 显示全部楼层
已经写好了,感谢各位回答.
用的就是global 全局。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2025-1-12 08:59 , Processed in 0.073379 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表