» 您尚未 [登录 - 注册] ┆ 在线 ┆ 风格 ┆ 帮助 ┆ 


  您的位置: DMIS 空间-- -> DMIS 区 -> DMIS 实例 -> 计算并输出程序运行时间的DMIS例子。

您是本帖的第 6031 个阅读者 ┆
 贴子主题:计算并输出程序运行时间的DMIS例子。
Provance性别:女<br>状态:离线<br>积时:2 天 2 小时 14 分 45 秒
大校
等级:大校
头衔:未定义
帮派:未定义
帖数:248
金钱:1343
Y 币:0
注册:2008-11-10

[资料] [短信] [编辑] [引用] [管理员邮箱] 楼主

计算并输出程序运行时间的DMIS例子。

DECL/CHAR,10,CH1
DECL/CHAR,10,CM1
DECL/CHAR,10,CS1
DECL/CHAR,10,CH2
DECL/CHAR,10,CM2
DECL/CHAR,10,CS2
DECL/INTGR,IH1
DECL/INTGR,IM1
DECL/INTGR,IS1
DECL/INTGR,IH2
DECL/INTGR,IM2
DECL/INTGR,IS2
DECL/INTGR,ALLS1
DECL/INTGR,ALLS2
DECL/INTGR,ALLS

$$计算机当前时间
KNPTC1 = ASSIGN/STIME()

$$得到小时、分钟、秒的值
CH1 = ASSIGN/SUBSTR(KNPTC1,1,2)
CM1 = ASSIGN/SUBSTR(KNPTC1,4,5)
CS1 = ASSIGN/SUBSTR(KNPTC1,7,8)
IH1 = ASSIGN/VAL(CH1)
IM1 = ASSIGN/VAL(CM1)
IS1 = ASSIGN/VAL(CS1)
ALLS1 = ASSIGN/(IH1*3600+IM1*60+IS1)

$$循环示例开始
(UP)
KNPTC2 = ASSIGN/STIME()
CH2 = ASSIGN/SUBSTR(KNPTC2,1,2)
CM2 = ASSIGN/SUBSTR(KNPTC2,4,5)
CS2 = ASSIGN/SUBSTR(KNPTC2,7,8)
IH2 = ASSIGN/VAL(CH2)
IM2 = ASSIGN/VAL(CM2)
IS2 = ASSIGN/VAL(CS2)
ALLS2 = ASSIGN/(IH2*3600+IM2*60+IS2)
ALLS = ASSIGN/(ALLS2-ALLS1)

if/(ALLS.GE.1)
JUMPTO/(NEXT)
ELSE
JUMPTO/(UP)
ENDIF

(NEXT)
WRITE/DID(DEFAULTSCREEN),KNPTC1
WRITE/DID(DEFAULTSCREEN),KNPTC2

TEXT/OUTFIL,'本次测试总共用时:'
WRITE/DID(DEFAULTSCREEN),ALLS



------------------------------------------------------------------------
环游世界,梦想人生。
2009-3-19 11:22:09
IP
zlzl521521性别:男<br>状态:离线<br>积时:11 个月 18 天 2 小时 29 分 54 秒
论坛贵宾
等级:论坛贵宾
头衔:未定义
帮派:未定义
帖数:202
金钱:1421
Y 币:0
注册:2008-8-8

[资料] [短信] [编辑] [引用] [管理员邮箱] 1



RE:

        正好我也写了一个宏在做同样的事情:

M(RUN_T) = MACRO/SSS,EEE
         
          DECL/INTGR,NUM11[3],NUM22[3]
          DECL/DOUBLE,TOTIME                
               
                NUM11[1] = ASSIGN/VAL(ELEMNT(1,'/',SSS))
                NUM11[2] = ASSIGN/VAL(ELEMNT(2,'/',SSS))  
                NUM11[3] = ASSIGN/VAL(ELEMNT(3,'/',SSS))
               
                NUM22[1] = ASSIGN/VAL(ELEMNT(1,'/',EEE))
                NUM22[2] = ASSIGN/VAL(ELEMNT(2,'/',EEE))
                NUM22[3] = ASSIGN/VAL(ELEMNT(3,'/',EEE))
         
                TOTIME = ASSIGN/(NUM22[1]-NUM11[1])*3600 + (NUM22[2]-NUM11[2])*60 + (NUM22[3]-NUM11[3])      
         
          WRITE/DID(DEFAULTSCREEN),'共计扫描时间为',TOTIME,'秒'
         
ENDMAC

应用方法如下:

STATIME = ASSIGN/STIME()

整个测量程序

ENDTIME = ASSIGN/STIME()

CALL/M(RUN_T),STATIME,ENDTIME

和LZ方法不同的就是在分离时间格式中间的数值上面;LZ所用的是在字串中根据位数在取值,上面的宏是用字串中的“/”来取值。



------------------------------------------------------------------------
关于精神病人的上网问题一直是我国治安管理条例中的空白.
2009-5-11 15:16:00
IP ×
zlzl521521性别:男<br>状态:离线<br>积时:11 个月 18 天 2 小时 29 分 54 秒
论坛贵宾
等级:论坛贵宾
头衔:未定义
帮派:未定义
帖数:202
金钱:1421
Y 币:0
注册:2008-8-8

[资料] [短信] [编辑] [引用] [管理员邮箱] 2



RE:

        DMIS有一个关键字在做这个事情.

        KNPTC1 = assign/SDATETIME()

        KNPTC2 = assign/SDATETIME()

        KNPTC3 = assign/SELAPSETIME(KNPTC1, KNPTC2, SHORT)

        KNPTC3 = assign/SELAPSETIME(KNPTC1, KNPTC2, LONG)

          SELAPSETIME相当于楼上程序中的宏.


------------------------------------------------------------------------
关于精神病人的上网问题一直是我国治安管理条例中的空白.
2009-6-1 12:57:49
IP ×
lion性别:男<br>状态:离线<br>积时:5 天 16 小时 41 分 8 秒
中校
等级:中校
头衔:未定义
帮派:未定义
帖数:134
金钱:336
Y 币:0
注册:2008-11-14

[资料] [短信] [编辑] [引用] [管理员邮箱] 3



有关键字就是好,省得写宏了。

顶!


------------------------------------------------------------------------
DMIS 空间--欢迎您!
2009-6-10 15:36:44
IP ×
zlzl521521性别:男<br>状态:离线<br>积时:11 个月 18 天 2 小时 29 分 54 秒
论坛贵宾
等级:论坛贵宾
头衔:未定义
帮派:未定义
帖数:202
金钱:1421
Y 币:0
注册:2008-8-8

[资料] [短信] [编辑] [引用] [管理员邮箱] 4



不错~~


------------------------------------------------------------------------
关于精神病人的上网问题一直是我国治安管理条例中的空白.
2009-7-24 12:11:18
IP ×
 每页10条,共1页,合计5条记录分页:« 1 »转到  


爱科腾瑞(北京)有限公司