51Testing软件测试论坛

标题: 有个问题问 [打印本页]

作者: jackael008    时间: 2005-8-30 12:31
标题: 有个问题问
最近开始用sqabasic,所以不太熟
想问下,如何处理在一个while的循环中,处理时间,比如5秒后跳出循环。
高人帮个忙吧!
作者: gabriel    时间: 2005-8-30 12:55
dealyfor(5000)
作者: jackael008    时间: 2005-8-30 13:02
楼上的人理解错了我的意思,delayfor只是等待5秒,我希望是在不断循环中,判断时间和开始循环的时间之间大于某个值。
     if(endtime-starttime)>TIMELIMIT
              break;
但就是不知道如何处理时间的计算。
作者: gabriel    时间: 2005-8-30 14:42
楼主是说:“比如5秒后跳出循环”,所以我理解成了延迟
这个问题没有遇见过,还要请高手来帮忙
作者: ilovejolly    时间: 2005-8-30 14:54
直接根据时间去判断,从编程的角度看,是不能实现的。由于程序语句执行的速度很快,我们变通一下,在循环结束后面加上判断,我觉得就可以达到要求。如果想有更好的精度,可以在每句后面都作判断。

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

label1 操作

[ Last edited by ilovejolly on 2005-8-30 at 16:04 ]
作者: jackael008    时间: 2005-8-30 15:33
再次谢谢版主
~!!!
作者: ilovejolly    时间: 2005-8-30 16:04
上面这个伪代码是有两个结束循环的地方,如果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)

处理的时候要转换一下类型




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2