51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2408|回复: 6
打印 上一主题 下一主题

[Robot] 有个问题问

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-8-30 12:31:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近开始用sqabasic,所以不太熟
想问下,如何处理在一个while的循环中,处理时间,比如5秒后跳出循环。
高人帮个忙吧!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2005-8-30 12:55:28 | 只看该作者
dealyfor(5000)
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2005-8-30 13:02:09 | 只看该作者
楼上的人理解错了我的意思,delayfor只是等待5秒,我希望是在不断循环中,判断时间和开始循环的时间之间大于某个值。
     if(endtime-starttime)>TIMELIMIT
              break;
但就是不知道如何处理时间的计算。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2005-8-30 14:42:28 | 只看该作者
楼主是说:“比如5秒后跳出循环”,所以我理解成了延迟
这个问题没有遇见过,还要请高手来帮忙
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2005-8-30 14:54:06 | 只看该作者
直接根据时间去判断,从编程的角度看,是不能实现的。由于程序语句执行的速度很快,我们变通一下,在循环结束后面加上判断,我觉得就可以达到要求。如果想有更好的精度,可以在每句后面都作判断。

x=当前时间
while(条件)
操作
y=当前时间
if y-x>5秒
goto label1
end if
wend

label1 操作

[ Last edited by ilovejolly on 2005-8-30 at 16:04 ]
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2005-8-30 15:33:26 | 只看该作者
再次谢谢版主
~!!!
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2005-8-30 16:04:41 | 只看该作者
上面这个伪代码是有两个结束循环的地方,如果while条件为假,直接wend,如果y-x>5,跳到label1
如果只用时间判断,可以这样

x=当前时间
while(1)
操作
y=当前时间
if y-x>5秒
goto label1
end if
wend

label1 操作

下面是当前时间的代码
   Dim y
   Dim nowh
   Dim nowm
   Dim nows
   nowh=Hour(Now)
   nowm=Minute(Now)
   nows=Second(Now)
   y=TimeSerial(nowhr,nowmin,nowsec)

处理的时候要转换一下类型
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-27 15:06 , Processed in 0.072669 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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