• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[按键精灵安卓/IOS脚本手机版2.5基础教程] 8.字符串、文本、命令... [复制链接]

1#

按键精灵安卓/IOS脚本手机版2.5基础教程


8.字符串、文本、命令库、插件


1. 字符串

上一节我们讲了数据类型,知道了比较大小时将字符串转换成整数比较适合,但是也有一些不需要转换反而更好的情况,例如时间字符串的比较,我们先来获取一下网络时间:

  1. Dim 网络时间
  2. 网络时间=GetNetworkTime()
  3. Traceprint 网络时间
复制代码

我们可以得到这样的一个运行结果:


您所在的用户组无法下载或查看附件


毋庸置疑,这是一个字符串,如果我们需要用来比较时间,那么需要使用字符串命令将字符串处理函数,提取年月日时分秒,并跟自己设置的时间进行逐一比较,需要判定6次,但是如果直接使用字符串比较,那么只需要一次判定,我们根据获取的网络时间的格式,写上同样格式的日期来进行比较:
  1. Dim 网络时间
  2. 网络时间=GetNetworkTime()
  3. TracePrint 网络时间

  4. Dim 自定义时间 = "2015-10-10 14:00:00"
  5. If 自定义时间 > 网络时间 Then
  6. TracePrint "还没到自定义时间"
  7. Else
  8. TracePrint "已经到了自定义时间"
  9. End If
复制代码
运行一遍得出:

您所在的用户组无法下载或查看附件


可以发现,能够正常的判断出还未到自定义时间,我们将自定义时间设置的早一天试试:
  1. Dim 网络时间
  2. 网络时间=GetNetworkTime()
  3. TracePrint 网络时间

  4. Dim 自定义时间 = "2015-10-09 14:00:00"
  5. If 自定义时间 > 网络时间 Then
  6. TracePrint "还没到自定义时间"
  7. Else
  8. TracePrint "已经到了自定义时间"
  9. End If
复制代码
这回的结果是:

您所在的用户组无法下载或查看附件


经过尝试,我们发现字符串也是可以比较的,并且有时候确实更加方便,但是什么时候才能用字符串比较呢?可能有很多地方,不可能全部去记住,那么我们就应该了解字符串比较能够进行的原因,字符串比较采用的是逐位比较的方式,将比较的两个字符串的每一位都进行比较,比如“2015”和“2016”两个字符串比较,会先比较第一位的字符,两个都是“2”,那么继续比较下一位,直到“5”和“6”这两个字符,得出“6”大于“5”的结果,那么字符串“2016”就大于“2015”。当然,逐位的比较并不是直接进行比较,而是都转换成ANSI码进行比较,我们可以轻松的在网上找到基本上所有字符的ANSI码。
2. 文本
通过之前的字符串学习,我们懂得了如何分割字符串,于是可以在UI界面去写上所有的账号,然后脚本中获取并分割,然而当账号多的时候,你就明白手机上的输入是多么的蛋疼,这时候,我们可以使用文件的读取来解决这个问题,有的童鞋会说文件并不单单指文本,这没错,但是大部分的文件操作其实都是文本操作,或者说,都当成文本来操作,因此。。。不要在意这种细节~ 咳咳,继续,我们可以在电脑上写好所有的账号,保存在文本文档里,传输到手机内,而脚本直接读取此文件来获取账号。我们来看看有关于文件的操作:

您所在的用户组无法下载或查看附件


归纳起来也就两种:读与写。我们来尝试一番,我们在桌面上新建一个text.txt文档,打开后写入test并保存退出,将模拟器的共享文件夹设置到桌面,然后在脚本中写入:
  1. Dim 返回值
  2. 返回值 = File.Read("XXXX") //XXXX为共享目录的路径,手机和模拟器不同,多种模拟器也不同
  3. TracePrint 返回值
复制代码
运行一下,我们就可以获取到文本内的内容了:

您所在的用户组无法下载或查看附件



3. 命令库
为了功能的重复使用,我们前面断断续续有写了一些函数,比如比大小的那个函数,可以在每个脚本都加入这些,因为他们并不依赖其他部分,不是专属于某一个游戏或应用,随着自己写的这些函数越来越多,每个脚本都加入这些好累啊(代码一长眼睛都花了,效率直线下降啊有木有),有什么办法可以一劳永逸呢?每当我这么提问的时候那肯定是有办法的啦,我们可以将自己写的这些函数做成命令库插件,自己的专属哦!
先来回顾一下最前面的环境搭建的内容,我们有提到的几个文件夹,其中有一个commandLib文件夹,没错,自定义的命令库就应该写在这儿,我们打开这个文件夹:

您所在的用户组无法下载或查看附件


恩,完全不知道什么意思。。。咳咳,我们发现同一个文件名有3种后缀,都打开看看很快就能知道.mql后缀的才是需要我们写的(其他两种有乱码啊有木有,不用管他们,这是自动生成的)。我们使用文本文档打开CmdLibUtil.mql后得到:

您所在的用户组无法下载或查看附件


相信详细看过之前教程的很容易就知道这就是一个相加的函数。我们来看看在脚本中怎么用到这个:

您所在的用户组无法下载或查看附件


没错,只需要在文件最上面加入完整(包括后缀)命令库的名称,使用里面的命令加上命令库名称(不包括后缀)与函数名就可以使用命令库里的函数,跟使用按键自带的命令并没有多大的区别。
如果想偷懒,我们可以直接在默认存在的几个命令库插件里增加函数,但是如果自己新建一个命令库,要记得将命令库同步到手机上的按键精灵,连接手机,commandLib文件夹中的同步命令库.bat文件双击一下就好了(或者手动将文件拷贝到手机中按键精灵的commandLib文件夹中)。
4. 插件
我们说了制作自己的命令库,但是本质上命令库并没有脱离按键的那些命令,只是进行了一些封装,那么我们怎么来实现目前按键没有的命令呢?比如我们写了一个数组,需要为得出数组长度并对数组排序(比如从大到小),首先,我们需要知道他的长度,手快的童鞋立马啪啪啪写出了一个函数:
  1. Function 获取数组长度(arr)
  2. Dim 长度 = 0
  3. For Each i In arr
  4. 长度 = 长度 + 1
  5. Next
  6. 获取数组长度 = 长度
  7. End Function

  8. Dim 数组 = Array(1,2,4,3)
  9. TracePrint 获取数组长度(数组)
复制代码
运行得到:

您所在的用户组无法下载或查看附件



恩,并没有问题,然后排序的时候,傻眼了,按键并没有排序的功能,自己写的话感觉好复杂啊,需要用到算法(可以百度一下排序算法)那么我们来使用lua插件完成这个操作吧,lua自带了一些排序命令(使用的冒泡算法),我们可以直接使用。

糟糕,没有lua基础怎么办!也不要紧,我们直接现学,百度一下 lua 排序:


您所在的用户组无法下载或查看附件


就决定是你了----第一个!很容易就找出排序在lua中的命令是table.sort(arr):

您所在的用户组无法下载或查看附件


命令也找到了,是时候做成插件放到按键中使用了。按键的插件需要一点点的改变,我们先来看看官方的插件是怎么做的,依旧是找到按键的目录,之前说过的3个文件夹中的plugin文件夹,我们随便打开一个lua插件看看,就DateTime.lua吧,英语好的童鞋可以立马知道这是时间插件,那么对应的肯定是年月日的获取,我们挑一个看看就好了:

您所在的用户组无法下载或查看附件


发现就语法格式不一样,我们依样画葫芦写上:

您所在的用户组无法下载或查看附件


这样一个简单的插件就完成了,使用插件的方式和自定义命令库是一样一样的!赶紧去试试吧!(lua插件适合想深入研究的人去做,实际上按键的功能基本上能够满足我们的需求)

    已有1评分我要评分查看所有评分

    最后编辑兄弟工程师13 最后编辑于 2015-10-09 15:11:06
    本主题由 超级版主 瑞祥幽冥狼 于 2023/5/5 8:48:01 执行 审核帖子 操作
    2#


    3#

    可以调用liu的语法 貌似很棒的操作

    4#

    回复 1楼兄弟工程师13的帖子

    台上一分钟,台下十年功,谢谢讲师精彩的讲解,鼓掌!!!

    5#

    你好!请问如何实现在指定时间执行命令

    6#

    不错,很适合我这种新手

    7#

    不错,学习了

    8#


    9#

    卧槽,感觉有点懵逼了。。。

    10#

    学而时习之

    能想到,但不一定能做到。
    动动手,更容易发现问题。
    11#
    12#

    夜神模拟器哪里去找共享文件

    13#

    回复 1楼兄弟工程师13的帖子

    有没有更深点的!详细一些的!

    曾经有人说我,累了就别干了,一天到晚就知道干,因为我明白。穷在街头无人问,富在深山有远亲, 不信你看杯中酒,杯杯先敬有钱人,人无钱真不如鬼,汤无盐真不如水, 人,必须扔掉四样东西, 没意义的饭局…… 不爱你的人…… 看不起你的亲戚…… 虚情假义的朋友…… 必须拥有四样东西: 扬在脸上的自信, 长在心里的善良, 融进血液的骨气, 刻在生命里的坚强,虽然干的不优秀,但我努力着!
    14#

    已经懵逼了——!

    15#

    懵逼了

    16#

    好好好,感谢感谢感谢

    17#

    曾经有人说我,累了就别干了,一天到晚就知道干,因为我明白。穷在街头无人问,富在深山有远亲, 不信你看杯中酒,杯杯先敬有钱人,人无钱真不如鬼,汤无盐真不如水, 人,必须扔掉四样东西, 没意义的饭局…… 不爱你的人…… 看不起你的亲戚…… 虚情假义的朋友…… 必须拥有四样东西: 扬在脸上的自信, 长在心里的善良, 融进血液的骨气, 刻在生命里的坚强,虽然干的不优秀,但我努力着!

    18#

    硬着头皮上吧

    19#

    ,

    lua,真有意思

    20#

    为啥不能用中文 写插件

    发新话题 回复该主题