大家好,我是公众号3分钟学堂的郭立员,今天进行按键精灵安卓版教程的讲解,这一期我们来说一下脚本中的统计记录功能(文末有彩蛋哦)
统计记录的常见功能(1)数据的收集
这个是用来记录某个数据的变化情况,比如游戏里面记录打怪的次数,获得金币的数量等等。
(2)判断的触发条件
对于某个数据的记录达到某个值,执行对应的操作,比如说每一个小时执行一次脚本,这个就是一个时间的记录。
用于存储数据的媒介存储分成临时存储和长期存储:
临时存储常用变量、数组,它的特点是关闭脚本以后,数据就会自动清除。
长期存储是用文件形式存储,比如文本、配置文件或者其他具有读写功能的文件形式,具体不特指某一个,不过我常用文本存储,因为读写比较方便。
数据收集的操作流程(1)分析数据的来源:
①界面内容的提取,比如文字识别,xml节点提取
②代码自增,比如for的计次循环,变量自增 a=a+1,a=a&1
(2)选择临时存储还是长期存储
这个选择是根据数据是否需要多次使用,如果不需要多次使用的数据,使用临时存储即可,如果需要多次使用可以用长期存储。
(3)数据的收集
把有效的数据提取出来,然后放到存储媒介中,这一步的重点是“有效数据”,不能是空数据、重复的数据或者错误数据,所以你在存入之前先要查看数据的有效性。
数据的处理(1)用于展示以及统计变化
比如游戏获取金币,通过统计数据可以知道一天获取的数量,方便自己计算游戏的收益。
(2)用于判断条件的数据
写个简单的代码
- Dim 计次=0
- Do
- 计次 = 计次 + 1
- TracePrint "当前循环次数"&计次
- If 计次 = 5 Then
- Exit Do
- End If
- Delay 1000
- Loop
复制代码这段代码是统计循环运行的次数,用于存储的媒介是变量:计次,
数据来源于代码递增:
计次 = 计次 +1
判断是当计次等于5结束循环。
常见的数据统计类型
(1)字符串的收集
比如:网页数据采集,注册账号密码的记录
(2)数字的统计
这个只要是关于数字计算的都算,像刚刚代码的统计次数、游戏获取金币数量等,它不同于字符串的区别在于,处理收集数据还要有一步计算过程,如果不需要计算的数字,其实也算是字符串的收集。
数据统计涉及的代码
(1)用文本存储,统计是否操作过
注:file命令在不同版本的按键助手会有bug,如果出现不能使用的情况,自行更换其他对应的命令。
- Dim 数据="abc1"
- Dim path="/sdcard/pictures/记录文件.txt"
- '判断记录文件是否存在
- If Len(file.read(path)) = 0 Then
- TracePrint "首次记录"
- file.Write(path,数据)
- End If
- '比对去重后,把新数据加入记录
- Dim arr=file.readlines(path)
- For i = 0 To UBOUND(arr)
- If 数据 = arr(i) Then
- TracePrint "数据已经存在"
- Exit For
- End If
- If i = UBOUND(arr) Then
- TracePrint "新数据已经加入"
- file.WriteLine(path,1,数据)
- End If
- Next
复制代码(2)数组存储
数组最大下标加一等于新数据,就是给数组增加数据。
- Dim arr=array(1,2,4,8)
- arr(Len(arr)) = 7
- TracePrint join(arr,",")
复制代码len(arr)和ubound(arr)+1是一样的,看个人习惯
(3)变量的存储
不需要计算的,直接用“变量=变量&数据”的格式
- Dim m
- Dim 新数据="abc"
- m=m&新数据
复制代码需要计算的,“变量=变量 运算符号 数据”,如m=m+1
数据统计记录的难点我们要想统计好数据,需要解决几个问题:
一是数据要绝对准确,比如说我们用ocr识别数字,就有可能出现识别错误
二是对数据的有效性判断,当我们得到数据以后,要看看是不是空值,是不是重复值,是不是错误类型的值
三是数据要不要统计的问题,其实也算是有效性的问题,比如满足条件统计,不满足条件不统计这种类型的,要会做好判断区分。
总的来说,数据统计不难,大家在时候时候细心一点就行。
彩蛋
e=mc²