中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如果將1文本的1組溫度記錄值的最大值找出,并加以判斷
English/Chinese Fix Translation
作者:
标题: 如果將1文本的1組溫度記錄值的最大值找出,并加以判斷 上一主题 | 下一主题
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 16 楼』:   使用 LLM 解释/回答一下

Originally posted by zhoushijay at 2007-5-12 04:26 PM:
set fso=createobject("scripting.filesystemobject")
set op=fso.opentextfile("1.txt",1)
set d=createobject("scripting.dictionary")
on error resume next
for i=1 to 10 ...


用FOR,好像用while好点。
用op.atendofstream属性循环。

没仔细 看slore的回复。灌水了 。o(∩_∩)o...哈哈

Last edited by wudixin96 on 2007-5-12 at 05:38 PM ]


2007-5-12 17:34
查看资料  发短消息  网志   编辑帖子  回复  引用回复
zhoushijay
高级用户

Autowalk


积分 845
发帖 375
注册 2007-3-3
状态 离线
『第 17 楼』:   使用 LLM 解释/回答一下

经过13楼建议,我作了一点修改,不过我还是认为dictionary比较方便,上次错误的主要原因是提取集合中的最大数的算法错误,现在已经改正,并且测试过了.

set fso=createobject("scripting.filesystemobject")
set op=fso.opentextfile("1.txt",1)
set d=createobject("scripting.dictionary")
i=1
do until op.atendofstream=true
ln=op.readline
t=mid(ln,17,3)
on error resume next
t=int(t)
if err=0 then
d.add i,t
end if
i=i+1
loop
mx=0
for each i in d
if d(i)>mx then
mx=d(i)
end if
next

if mx>45 and mx<90 then
msgbox("Temperature is OK"&chr(10)&"The hotest is "&mx&"C")
else
msgbox("Temperature is NG"&chr(10)&"The hotest is "&mx&"C")
end if

Last edited by zhoushijay on 2007-5-13 at 12:19 PM ]




你好,脚本专家!
<a target=blank href=tencent://message/?uin=29654761&Site=www.111.com&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:29654761:5 alt="点击这里给我发消息"></a>
2007-5-13 10:56
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 18 楼』:   使用 LLM 解释/回答一下

t=mid(ln,17,2)

t=mid(ln,17,3)
?这样T不是只有一个?


2007-5-13 11:19
查看资料  发短消息  网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 19 楼』:   使用 LLM 解释/回答一下

还好他后面有空格

XX C
XXX C

你取3位。。。“XX ”或者“XXX”经INT后就是XX 和 XXX


2007-5-13 11:24
查看资料  发短消息  网志   编辑帖子  回复  引用回复
zhoushijay
高级用户

Autowalk


积分 845
发帖 375
注册 2007-3-3
状态 离线
『第 20 楼』:   使用 LLM 解释/回答一下

那直接取3位好了




你好,脚本专家!
<a target=blank href=tencent://message/?uin=29654761&Site=www.111.com&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:29654761:5 alt="点击这里给我发消息"></a>
2007-5-13 12:18
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
sonicandy
中级用户





积分 273
发帖 91
注册 2007-5-7
状态 离线
『第 21 楼』:   使用 LLM 解释/回答一下

Option Explicit '语法严格
Dim reg,matches,match,file,max,flag,submatch,fso,temp

Set fso = CreateObject("scripting.filesystemobject")'创建FSO对象
Set reg = new regexp '创建正则对象

reg.global = True '全局搜索
reg.ignorecase = True '忽略大小写
reg.pattern = "CT : *([0-9\-]+) +C" '匹配模式字符串(正则表达式)
flag = False '标记是否为第一次循环
Set file = fso.opentextfile("1.txt",1)

If Not file.atendofstream Then '文件不为空
Set matches = reg.execute(file.readall()) '执行搜索
For Each match In matches '遍历所有匹配项
For Each submatch In match.submatches '遍历匹配子项(模式字符串中括号里的内容)
temp = Int(submatch) '转化为正数
Next
If flag=False Then '第一次直接赋值
max = temp
flag = True
ElseIf max<temp Then '以后比较赋值
max = temp
End if
Next
End If

If max>45 And max<90 Then
MsgBox "OK"
Else
MsgBox "NG"
End If

'释放对象
Set reg = Nothing
Set fso = Nothing


   此帖被 +11 点积分        点击查看详情   
评分人:【 baomaboy 分数: +11  时间:2007-5-13 19:02


2007-5-13 18:54
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: