annybaby 发表于 2011-3-29 00:20:22

请教一个关于文件查找的问题

$flag=FileFindFirstFile("*.rar")
While 1
$file=FileFindNextFile($flag)
If @error Then
        MsgBox(0,"","没有了!")
        Exit
EndIf
MsgBox(0,"",$file)
WEnd

上面的代码可以被正确执行,但是如果将
MsgBox(0,"",$file)
放在IF...endif前面的话,为什么会有无数个"空的"MsgBox()出来呢??最多也应该只是有一个吧??

gzh888666 发表于 2011-3-29 00:23:53

IF是个判断语句,then才会执行,你放到IF前面就是无限循环了!

love5173 发表于 2011-3-29 00:28:42

楼主 你知道@error 是哪句话的返回值吗
你把位置换了一下 味道直接就变了哦

annybaby 发表于 2011-3-29 18:09:40

回复 2# gzh888666

then 后面的语句会不会执行取决于判断条件 是否成立吧??当函数FileFindNextFile()没有找到下一个匹配的文件时就会将@error置为1,然后执行到if语句,判断条件成立,then的里面的语句就会执行,不是吗?

netegg 发表于 2011-3-29 18:33:24

你那个@error是针对什么的,msgbox的返回值(放前面的情况下)?

annybaby 发表于 2011-3-29 18:41:30

回复 5# netegg

我查看了下@error的值,为什么当FileFindNextFile()没有搜索到下一个匹配的文件时,没有把@error的值改成1呢??(这导致了then的语句一直没有被执行,成了死循环了`~)

xz00311 发表于 2011-3-29 18:41:35

论坛有例子你有搜索看一下

netegg 发表于 2011-3-29 18:44:50

@error是个宏,不是你琢磨着怎么来就怎么来的,它只跟着紧邻的命令跑

annybaby 发表于 2011-3-29 23:11:34

回复 7# xz00311


    那个例子用了好多个会改变@error的函数,我这个除了Filefindnextfile()外,没有其它会改变它的吧??
页: [1]
查看完整版本: 请教一个关于文件查找的问题