按键精灵安卓/IOS脚本手机版2.5基础教程
8.字符串、文本、命令库、插件
1. 字符串
上一节我们讲了数据类型,知道了比较大小时将字符串转换成整数比较适合,但是也有一些不需要转换反而更好的情况,例如时间字符串的比较,我们先来获取一下网络时间:
- Dim 网络时间
- 网络时间=GetNetworkTime()
- Traceprint 网络时间
复制代码 我们可以得到这样的一个运行结果:
- 您所在的用户组无法下载或查看附件
毋庸置疑,这是一个字符串,如果我们需要用来比较时间,那么需要使用字符串命令将字符串处理函数,提取年月日时分秒,并跟自己设置的时间进行逐一比较,需要判定6次,但是如果直接使用字符串比较,那么只需要一次判定,我们根据获取的网络时间的格式,写上同样格式的日期来进行比较:- Dim 网络时间
- 网络时间=GetNetworkTime()
- TracePrint 网络时间
- Dim 自定义时间 = "2015-10-10 14:00:00"
- If 自定义时间 > 网络时间 Then
- TracePrint "还没到自定义时间"
- Else
- TracePrint "已经到了自定义时间"
- End If
复制代码 运行一遍得出:- 您所在的用户组无法下载或查看附件
可以发现,能够正常的判断出还未到自定义时间,我们将自定义时间设置的早一天试试:- Dim 网络时间
- 网络时间=GetNetworkTime()
- TracePrint 网络时间
- Dim 自定义时间 = "2015-10-09 14:00:00"
- If 自定义时间 > 网络时间 Then
- TracePrint "还没到自定义时间"
- Else
- TracePrint "已经到了自定义时间"
- End If
复制代码 这回的结果是:- 您所在的用户组无法下载或查看附件
经过尝试,我们发现字符串也是可以比较的,并且有时候确实更加方便,但是什么时候才能用字符串比较呢?可能有很多地方,不可能全部去记住,那么我们就应该了解字符串比较能够进行的原因,字符串比较采用的是逐位比较的方式,将比较的两个字符串的每一位都进行比较,比如“2015”和“2016”两个字符串比较,会先比较第一位的字符,两个都是“2”,那么继续比较下一位,直到“5”和“6”这两个字符,得出“6”大于“5”的结果,那么字符串“2016”就大于“2015”。当然,逐位的比较并不是直接进行比较,而是都转换成ANSI码进行比较,我们可以轻松的在网上找到基本上所有字符的ANSI码。
2. 文本 通过之前的字符串学习,我们懂得了如何分割字符串,于是可以在UI界面去写上所有的账号,然后脚本中获取并分割,然而当账号多的时候,你就明白手机上的输入是多么的蛋疼,这时候,我们可以使用文件的读取来解决这个问题,有的童鞋会说文件并不单单指文本,这没错,但是大部分的文件操作其实都是文本操作,或者说,都当成文本来操作,因此。。。不要在意这种细节~ 咳咳,继续,我们可以在电脑上写好所有的账号,保存在文本文档里,传输到手机内,而脚本直接读取此文件来获取账号。我们来看看有关于文件的操作:- 您所在的用户组无法下载或查看附件
归纳起来也就两种:读与写。我们来尝试一番,我们在桌面上新建一个text.txt文档,打开后写入test并保存退出,将模拟器的共享文件夹设置到桌面,然后在脚本中写入:- Dim 返回值
- 返回值 = File.Read("XXXX") //XXXX为共享目录的路径,手机和模拟器不同,多种模拟器也不同
- TracePrint 返回值
复制代码 运行一下,我们就可以获取到文本内的内容了:- 您所在的用户组无法下载或查看附件
3. 命令库 为了功能的重复使用,我们前面断断续续有写了一些函数,比如比大小的那个函数,可以在每个脚本都加入这些,因为他们并不依赖其他部分,不是专属于某一个游戏或应用,随着自己写的这些函数越来越多,每个脚本都加入这些好累啊(代码一长眼睛都花了,效率直线下降啊有木有),有什么办法可以一劳永逸呢?每当我这么提问的时候那肯定是有办法的啦,我们可以将自己写的这些函数做成命令库插件,自己的专属哦! 先来回顾一下最前面的环境搭建的内容,我们有提到的几个文件夹,其中有一个commandLib文件夹,没错,自定义的命令库就应该写在这儿,我们打开这个文件夹:- 您所在的用户组无法下载或查看附件
恩,完全不知道什么意思。。。咳咳,我们发现同一个文件名有3种后缀,都打开看看很快就能知道.mql后缀的才是需要我们写的(其他两种有乱码啊有木有,不用管他们,这是自动生成的)。我们使用文本文档打开CmdLibUtil.mql后得到:- 您所在的用户组无法下载或查看附件
相信详细看过之前教程的很容易就知道这就是一个相加的函数。我们来看看在脚本中怎么用到这个:- 您所在的用户组无法下载或查看附件
没错,只需要在文件最上面加入完整(包括后缀)命令库的名称,使用里面的命令加上命令库名称(不包括后缀)与函数名就可以使用命令库里的函数,跟使用按键自带的命令并没有多大的区别。 如果想偷懒,我们可以直接在默认存在的几个命令库插件里增加函数,但是如果自己新建一个命令库,要记得将命令库同步到手机上的按键精灵,连接手机,commandLib文件夹中的同步命令库.bat文件双击一下就好了(或者手动将文件拷贝到手机中按键精灵的commandLib文件夹中)。4. 插件 我们说了制作自己的命令库,但是本质上命令库并没有脱离按键的那些命令,只是进行了一些封装,那么我们怎么来实现目前按键没有的命令呢?比如我们写了一个数组,需要为得出数组长度并对数组排序(比如从大到小),首先,我们需要知道他的长度,手快的童鞋立马啪啪啪写出了一个函数:- Function 获取数组长度(arr)
- Dim 长度 = 0
- For Each i In arr
- 长度 = 长度 + 1
- Next
- 获取数组长度 = 长度
- End Function
- Dim 数组 = Array(1,2,4,3)
- TracePrint 获取数组长度(数组)
复制代码 运行得到:- 您所在的用户组无法下载或查看附件
恩,并没有问题,然后排序的时候,傻眼了,按键并没有排序的功能,自己写的话感觉好复杂啊,需要用到算法(可以百度一下排序算法)那么我们来使用lua插件完成这个操作吧,lua自带了一些排序命令(使用的冒泡算法),我们可以直接使用。
糟糕,没有lua基础怎么办!也不要紧,我们直接现学,百度一下 lua 排序:
- 您所在的用户组无法下载或查看附件
就决定是你了----第一个!很容易就找出排序在lua中的命令是table.sort(arr):- 您所在的用户组无法下载或查看附件
命令也找到了,是时候做成插件放到按键中使用了。按键的插件需要一点点的改变,我们先来看看官方的插件是怎么做的,依旧是找到按键的目录,之前说过的3个文件夹中的plugin文件夹,我们随便打开一个lua插件看看,就DateTime.lua吧,英语好的童鞋可以立马知道这是时间插件,那么对应的肯定是年月日的获取,我们挑一个看看就好了:- 您所在的用户组无法下载或查看附件
发现就语法格式不一样,我们依样画葫芦写上:- 您所在的用户组无法下载或查看附件
这样一个简单的插件就完成了,使用插件的方式和自定义命令库是一样一样的!赶紧去试试吧!(lua插件适合想深入研究的人去做,实际上按键的功能基本上能够满足我们的需求)