「按键精灵」关于脚本中的统计记录功能

大家好,我是公众号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识别数字,就有可能出现识别错误


二是对数据的有效性判断,当我们得到数据以后,要看看是不是空值,是不是重复值,是不是错误类型的值


三是数据要不要统计的问题,其实也算是有效性的问题,比如满足条件统计,不满足条件不统计这种类型的,要会做好判断区分。


总的来说,数据统计不难,大家在时候时候细心一点就行。

举报
评论 0