常用调试技巧系列进阶篇
学会记录脚本运行信息 上一期小编跟大家分享了利用调试里填写关键变量名直接查看输出变量与利用输出语句直接输出相应的调试信息来判断脚本执行到哪一环节出现问题,这种方法简单易用并且主要是用于自己亲自调试脚本,但是如果是脚本长时间运行出错或者是在用户的电脑上出错或者我们希望知道我们不在的时候脚本具体操作了什么,前面的方法肯定是无法适用的,这个时候我们多希望能记录脚本整个的一个输出信息,以供我们查看后进行针对性的纠错~ |
那有问题来了,有没有方法能记录脚本大概的运行过程,也就是我们平常所说的生成脚本挂机日志呢?方法肯定是有的,今天小编就给大家分享三种记录脚本输出信息以供之后查看脚本运行状态的方法[tr=rgb(154, 205, 50)]方法1—WriteFileEx(写入文本文件) |
命令名称 | WriteFileEx 写入文件
|
命令功能 | 向目标文本文件写入文本内容(注:文本文件是指文件后缀名为.txt的文件)
|
命令参数 | 参数1 字符串型,目标文件路径 参数2 字符串型,写入文本内容 |
返 回 值 | 无 |
使用WriteFileEx向某文档写入日志信息的小代码例子
- FileName = "C:\脚本日志.txt"//路径和日志名字可自定义
- Call 输出日志("这是第一条测试用的脚本日志")
- Delay 1000
- Call 输出日志("这是第二条测试用的脚本日志")
- Sub 输出日志(内容)
- Call Plugin.File.WriteFileEx(FileName, Now()& ": "&内容)//这边有加上执行该命令相应的系统时间
- End Sub
复制代码[tr=rgb(154, 205, 50)]方法2—WriteINI(写入键值) |
命令名称 | WriteINI 写入键值 |
命令功能 | 向配置文件里写一个键值(注:配置文件是指文件后缀名为.INI的文件)
|
命令参数 | 参数1 字符串型,小节名 参数2 字符串型,键值 参数3 字符串型,写入内容 参数4 字符串型,INI文件路径
|
返 回 值 | 无 |
■ 怎么理解命令中的参数:小节名、键值 呢?
小节名用于分类,例如:要记录很多帐号和密码,那么帐号可以算作一类,密码是一类:
[帐号]
[密码]
键值是类中的成员,例如:第一个帐号,第二个帐号 第一个密码,第二个密码:
[帐号]
第一个帐号=123456
第二个帐号=345678
[密码]
第一个密码=111111
第二个密码=111111
■ 也不是强制这么分类,小节名和键值的主要作用是为了标识你存放的信息,只要你知道你写入ini文件的时候,把你的信息写到什么位置,下次读取的时候知道在什么位置读取就可以了。使用WriteINI向某配置文件写入日志信息的小代码例子
- FileName = "C:\脚本日志2.ini"//路径和日志名字可自定义
- Call 输出日志("这是第一条测试用的脚本日志")
- Delay 1000
- Call 输出日志("这是第二条测试用的脚本日志")
- Sub 输出日志(内容)
- Call Plugin.File.WriteINI("日志", now, 内容, FileName)
- End Sub
复制代码[tr=rgb(154, 205, 50)]方法3—创建FileSystemObject 对象 |
对于FileSystemObject 对象不大了解的童鞋可参考
【院刊】-【201505期】都速度进来找个对象吧~~使用FileSystemObject 对象向某文件写入日志信息的小代码例子- FileName = "C:\脚本日志3.txt"//路径和名字可自定义
- Set File = CreateObject("Scripting.FileSystemObject")
- Set F1 =File.CreateTextFile(FileName,True)
- Call 输出日志("这是第一条测试用的脚本日志")
- Delay 1000
- Call 输出日志("这是第二条测试用的脚本日志")
- Sub 输出日志(内容)
- F1.WriteLine (now() & " " & 内容)
- End Sub
复制代码[tr=rgb(154, 205, 50)]分享与拓展
|
其实按键logstrat命令自带记录日志功能,但是这个命令记录的只能是脚本里的traceprint语句输出的信息,并且受线程的影响,这边就不具体介绍了,有兴趣的童鞋可以参考按键自带的命令帮助,上面写的已经比较清楚了
下面分享一个在qui界面列表框里显示脚本日志,并可以点击按钮保存脚本日志的代码(可能有的童鞋之前已经看过了)
- Dimenv 日志_最大数量
- Dimenv 日志_当前内容
- Dimenv 日志_全部内容
- Sub 初始化日志(max)
- 日志_最大数量 = max - 1
- 日志_当前内容 = ""
- 日志_全部内容 = ""
- End Sub
- Sub 添加日志(text)
- 日志_全部内容 = 日志_全部内容 & text & VBCRLF
- If 日志_当前内容 = "" Then
- 日志_当前内容 = text
- Else
- 日志_当前内容 = 日志_当前内容 & "|" & text
- End If
- 日志_临时数组 = Split(日志_当前内容, "|")
- 日志_当前内容 = ""
- For i = UBound(日志_临时数组) To UBound(日志_临时数组) - 日志_最大数量 Step - 1
- If i >= 0 Then
- 日志_当前内容 = 日志_临时数组(i) & "|" & 日志_当前内容
- End If
- Next
- 日志_当前内容 = Left(日志_当前内容, Len(日志_当前内容) - 1)
- End Sub
- Sub 保存日志(path)
- Dim fso, fobj
- Set fso = CreateObject("scripting.FileSystemObject")
- Set fobj = fso.OpenTextFile(path, 2, True)
- fobj.Write 日志_全部内容
- fobj.Close
- Set fobj = Nothing
- Set fso = Nothing
- End Sub
复制代码
具体是如何运用的呢?大家可以根据自己的需求进行调用啦,小编这边拉几个控件、写几个控件事件稍微演示下
控件事件
- //添加控件进行测试
- Event Form2.Button1.Click
- 累加 = 累加 + 1
- 添加日志 "这是一条日志," & 累加
- Form2.ListBox1.List = 日志_当前内容
- End Event
- Event Form2.Load
- Call 初始化日志(5)//这边可以设置显示日志的条数
- End Event
- Event Form2.Button2.Click
- 保存日志 "c:\123.txt"//保存路径及名称可自定义
- End Event
复制代码 演示 - 您所在的用户组无法下载或查看附件
今天这期跟大家介绍了把脚本输出信息记录到文档里的几个小方法,下期可能跟大家讲一下如何用大漠写屏命令显示脚本运行信息,新人发帖不容易,望大家多多关照,多回复支持下哈~
另外调试时常出现的几种错误可以参考
【院刊】-【201408期】调试三天,气到吐血的【代码常见错误】
【院刊】-【201505期】常用调试技巧系列初级篇关于ini写入、读取文件的拓展【院刊】-【201412期】游戏掉线重连-ini写入读取帐号密码院刊总目录
谢谢大家阅读,既来之则请回复之 ! 顺手点个赞
[tr=rgb(143, 188, 143)] |
按键精灵免费公开课
| 实战班:回合制通用教学火热报名 |
【听课对象】:对按键精灵感兴趣的同学们都可以来~ 【上课地点】:零基础学按键精灵群(376122403) 【上课时间】:周天晚上19:30-21:00 【上课内容】:按键精灵脚本基础经验谈——图色命令
| 本期重点:回合制游戏--神武 学习时效:终生有效 上课时间:周2、周4、周6的 20:00--22:00 导师:工程师07 技术支持:果儿(院刊编辑) |
点我进入按键学院报名啦 招生细节进群咨询招生办主任:2群-372671254(优先加入) 1群-376122403
|