lark 发表于 2012-12-11 21:33:00

你把While 语句的表达式改成true就可以呀!

不知道AdlibRegister你在用什么来着!

cfs43210 发表于 2012-12-11 21:34:57

本帖最后由 cfs43210 于 2012-12-11 21:38 编辑

回复 13# lark

true 跟1有分别吗?

AdlibRegister 这是另二个循环

lark 发表于 2012-12-11 21:41:54

应该有,你用两次循环的话会出现你的进程CPU使用率是一直25%的,你试一下,我以前发的一个帖子因为CPU使用高所以没用!
http://www.autoitx.com/forum.php?mod=viewthread&tid=35747&highlight=

cfs43210 发表于 2012-12-11 21:44:58

本帖最后由 cfs43210 于 2012-12-11 21:47 编辑

AdlibRegister("detect2", 1000 * 60 * 30) ;30分钟
AdlibRegister("detect3", 1000 * 60 * 60) ;60分钟

While 1
      
      While 1

                If ....Then
                        ;代码
                        Sleep(1000 * 60 * 3)
                        ContinueLoop
                ElseIf ... Then
                        ;代码
                        Sleep(1000 * 60 * 2)
                        ContinueLoop
                ElseIf ... Then
                        ;代码
                        Sleep(1000 * 60 * 30)
                        ContinueLoop
                Else
                        Sleep(1000 * 60 * 5)
                        ExitLoop
                EndIf

      WEnd

WEnd
这样行吗,我觉得是一样的

lark 发表于 2012-12-11 21:49:27

我到现在还没搞清楚你要实现什么样的东东?

cfs43210 发表于 2012-12-11 21:49:40

回复 18# lark

你这个我试过了,还是不行因为我循环还要延时等待

lark 发表于 2012-12-11 21:56:06

你现在提供代码里条件也多,你里面的小循环退出时间也最少5分钟是嘛~ 小循环结束就开始那个大循环了!
还是找找别的办法吧!

netegg 发表于 2012-12-11 22:01:42

本帖最后由 netegg 于 2012-12-11 22:06 编辑

lz,你先说明下continueloop是干什么的,再说别的,这个continueloop是继续循环,麻烦你说说这么放着,代码知道你要继续进行哪个循环吗,还有exitloop也一样,退出哪个循环

另外,lz如果提问的话,最好说明到底要实现什么效果,光说没用的,就算把错误代码放上也没用。

cfs43210 发表于 2012-12-11 22:10:20

本帖最后由 cfs43210 于 2012-12-11 22:11 编辑

回复 23# netegg


    continueloop不合条件等待返回一直继续循环到合条件退出

cfs43210 发表于 2012-12-11 22:18:03

回复 24# cfs43210

我意思是PING 网络,网络不通等待3分钟继续循环,当网络通时,检查文件上否存在,文件存在时等待2分钟继续循环 ,直到没件不存在,当条件都符合时exitloop。等待15分钟重复

cfs43210 发表于 2012-12-11 22:18:30

本帖最后由 cfs43210 于 2012-12-11 22:31 编辑

回复 23# netegg
我意思是PING 网络,网络不通等待3分钟继续循环,当网络通时,检查文件上否存在,文件存在时等待2分钟继续循环 ,直到没件不存在,当条件都符合时exitloop。等待15分钟重复

AdlibRegister("detect2", 1000 * 60 * 30) ;30分钟
AdlibRegister("detect3", 1000 * 60 * 60) ;60分钟

While 1
       
        Sleep(1000 * 60 * 5)

        While 1

                If "ping=False" Then
                        ;代码
                        Sleep(1000 * 60 * 3)
                        ContinueLoop
                       
                ElseIf "文件<>0" Then
                       
                        If "服务器网络通" Then
                                ;代码
                                Sleep(1000 * 60 * 2)
                                ContinueLoop
                        Else
                                ;代码
                                Sleep(1000 * 60 * 30)
                                ContinueLoop
                               
                        EndIf
                       
                Else
                        ExitLoop
                EndIf

        WEnd

WEnd

netegg 发表于 2012-12-11 22:40:12

回复 24# cfs43210
如果你这么解释,那么两层loop,继续哪一层?

cfs43210 发表于 2012-12-11 22:47:02

本帖最后由 cfs43210 于 2012-12-11 22:53 编辑

回复 27# netegg
    第二层里还有一个IF 之后都合条件时ExitLoop
等待15分钟又重来 我重新表达了我的代码,这样你比较知道我的意思

netegg 发表于 2012-12-11 22:52:15

本帖最后由 netegg 于 2012-12-11 23:15 编辑

main()
Func main()
Do
        Sleep(180000)
Until Not (Ping('127.0.0.1'))
While 1
        If FileExists($file) Then
                Sleep(120000)
        Else
                main()
        EndIf
WEnd
EndFunc

cfs43210 发表于 2012-12-11 23:11:34

本帖最后由 cfs43210 于 2012-12-11 23:17 编辑

回复 29# netegg

你这样可以做我要做事吗,我第1步是PING IP 不通时拨号等待3分钟ContinueLoop返回循环,直拨号到通;第二步是检查我要上传的文件是否还有,如果还有没发送的,就检查我要发送的服务器,如果服务器通的话我要运行另一个程序,等待2分钟ContinueLoop返回循环,如服务器不通时等待30分钟ContinueLoop返回循环,直到文件全总部发送完。这些都做完了就退出当前循环ExitLoop。这就完成了一个过程。。现在等待15分钟就重复。谢谢!我头都大了。。。。
页: 1 [2] 3 4
查看完整版本: 循环代码求解?循环里面里又循环和延时!(已解决)