| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4175 人关注过本帖
标题:vfp中如何实时显示某段循环的累计时间
取消只看楼主 加入收藏
djszyyc
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2013-3-17
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:10 
vfp中如何实时显示某段循环的累计时间
有一段耗时较长的循环语句,VFP中能实现实时显示该段循环的累计时间吗?要以秒为单位进行累加,比如
for x=1 to 100000000
…&&此段程序很耗时
endfor
在表单上放一个标签,让它实时显示累计时间,不是在循环结束时统计它的总时间。
这在VB中很好实现,创建一个双线程程序即可,但VFP中不行,它不支持多线程,怎么办?
搜索更多相关主题的帖子: 时间 如何 
2013-03-21 16:59
djszyyc
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2013-3-17
收藏
得分:0 
各位老大,我的要求是实时显示,不是循环结束后显示一个总时间
2013-03-22 10:32
djszyyc
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2013-3-17
收藏
得分:0 
回复 2楼 bccn201203
你这是在统计这段循环的总时间,不能实时显示累计时间,我要的效果就象体育老师的秒表效果一样,一边是循环在运行,同时表单上用一个标签显示累计时间
2013-03-22 10:46
djszyyc
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2013-3-17
收藏
得分:0 
回复 8楼 kiff
thisform.t1.Value =SECONDS()
thisform.timer1.Enabled=.t.
FOR i=1 TO 1000
    WAIT WINDOW 'ESC 停止' TIMEOUT 2 (1)
    IF INKEY()=27  (2)
        EXIT (3)
    ENDIF  (4)
ENDFOR
thisform.timer1.Enabled=.f.
以上是8楼的代码,问题是vfp在执行你的(1),(2),(3),(4)这个循环体时,可以显示,但在执行我的循环体时,由于VFP是单线程,这时他就只执行循环体内的内容,而对Timer这个控件,VFP则好象没看到它的存在,只是在这个循环结束时,Timer控件在发生作用
2013-03-22 10:52
djszyyc
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2013-3-17
收藏
得分:0 
回复 19楼 qingfameng
是我嘴笨,没把问题说清楚,19楼最理解我,我就是要即时显示某段耗时程序所用的时间(因为里面有很多循环语句)
请各位大侠们帮帮我哈.
2013-03-23 07:10
djszyyc
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2013-3-17
收藏
得分:0 
thisform.timer1.Enabled= .T.
thisform.ole1.value=0 &&ole1是进度条
*语文
()
()
()
*数学
()
()
()
*英语
()
()
()
*政治
()
()
()
*历史
()
()
()
*地理
()
()
()
*物理
()
()
()
*化学
()
()
()
*生物
()
()
()
*两项总分/同类平均分/基本分/得分
()
()
()
*******以上30个按钮分别用于计算各个学科的平均分,优生人数等一系列统计工作,相当耗时,我校共5000名学生,计算完毕要40秒表左右
thisform.timer1.Enabled= .F.
MESSAGEBOX("计算完毕",0+48,"")
2013-03-23 07:19
djszyyc
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2013-3-17
收藏
得分:0 
我的想法是:一边让程序运行1-30个按钮,同时一边在表单上用一个标签即时显示时间,要求以秒为单位进行显示.(注意是即时显示)

各位看我程序哈!
thisform.timer1.Enabled= .T.
……(1)
thisform.timer1.Enabled= .F.

其中timer1的timer事件为thisform.label3.Caption=STR(SECONDS()-time_old)
    timer1的intervl属性为1000

现在的问题是程序在执行(1)处这段耗时操作时,timer1的timer的事件根本没有动作,只是在(1)处结束后才显示一个时间,不能实时显示。
我想肯定要用多线程才能实现,创建两个线程,一个线程运行(1)处的耗时操作,一个线程运行timer的timer事件,哪就能实时显示了。
但我不会,好像VB能行。也许VFP根本就不能解决这样的问题。
望各位帮我
2013-03-23 07:35
djszyyc
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2013-3-17
收藏
得分:0 
回复 29楼 TonyDeng
因为要做一系列的工作。包括:
1、从Excel中导入学生的成绩,你知道学校的老师不会使用VFP,但会用EXCEL,原始成绩是电子表格,要导入DBF中,还要进行数据的校验,这些是由程序全自动完成的,全部封装到了command1.chick()中。这个过程是比较费时的。
2、我校的考核方案比较复杂(文件就是七页,就是直接读完就要费点时间),不仅仅是算平均分,优生人数,及格人数这些小问题,而是对每个学科都要分门别类(比如有实验班,有普通班,有初中部,有高中部,有本科班,有专科班,有艺体班,它们的统计方法各不一样)的进行多种统计工作,得到一张总表,然后又导出为EXCEL,在这个过程中就用了很多循环语句,这个过程也比较费时。

所以很有必要,让程序即时显示时间
2013-03-23 20:00
djszyyc
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2013-3-17
收藏
得分:0 
回复 42楼 TonyDeng
我校是先让各个年级将学生成绩输好(你知道输入成绩是教务最不想做的事,太费时),然后上交到教务处,统一放在一个文件夹CJ下,各个年级上交的成绩,教务处没有要求他们按固定的模板来做,哪样显得程序太不专业,没有一点智能化,所以多了一个学生成绩的校验时间。再加上vfp与Excel通讯也比较费时,我是用my=CREATEOBJECT("Excel.application")来导入程序的。
2013-03-23 20:14
djszyyc
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2013-3-17
收藏
得分:0 
回复 43楼 bccn201203
教务主任要求一键搞定统计工作,要是傻瓜式的操作,这个要求比较高,我校在未采用此程序之前,教务处的两个人用EXCEL通常要三天左右才能得出统计结果。且错误非常多,任课老师经常到教务处扯皮。

还有,我的问题到底能不能用VFP自身来解决。
2013-03-23 20:23
快速回复:vfp中如何实时显示某段循环的累计时间
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.087834 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved