设为首页 - 加入收藏 - 网站地图 - RSS订阅 村姑网-www.cunguer.com
当前位置:首页 > 软件开发 > 按键精灵手机助手 > 正文

按键精灵手机助手使用紫猫插件zm.FileWriteLine和zm.FileDeleteLine命令实现utf-8文本行循环后,总行数增加的问题

时间:2020-03-22 00:54:03 来源:村姑网 作者:喜欢安静 阅读: 0 次
导读:今天在用按键精灵手机助手写一个安卓脚本的时候,需要实现对txt账号文本列表实现循环登录,并且每次启动时接着上次的登录,实现思路为:一直读取第一行账号,然后把第一行账号放到(写入)最后一行,最后删除第一行账号,实现对账号文本一直循环。在写入文本时使用紫猫插件中的...

今天在用按键精灵手机助手写一个安卓脚本的时候,需要实现对txt账号文本列表实现循环登录,并且每次启动时接着上次的登录,实现思路为:一直读取第一行账号,然后把第一行账号放到(写入)最后一行,最后删除第一行账号,实现对账号文本一直循环。在写入文本时使用紫猫插件中的zm.FileWriteLine命令,删除行使用的是zm.FileDeleteLine,但是读取行使用的是按键精灵自带的,File.ReadLine命令。上面的逻辑应该是没有问题的,少量账号运行,也没有问。但是当账号文本中的账号比较多的时候,就会出现运行一段时间,账号文本中某行会多出另外一个账号,且会第二个账号的前2个字符会丢失的问题,同时还会出现,账号总行数多出2行的问题。

文本编辑器使用的是notepad++,且编码为utf-8,经过脚本用户详细的测试,给我以下测试结果:

有个规律好像30个以上就出这样。

我测试10个 20都没有。

使用nodepad++新建文档,编码格式为utf-8,放入26个以上账号,只要跑过一个就会出现后面跟着其他账号的信息。

26个后面加一位27后面就加2位,以此类推。

如果放100个账号后面就会加22位并且新增账号数量,之前的100个账号行数会变成102所以这里并不是只有22位,应该还要算新增的账号位数,如果在放多我相信后面会跟着更多的数字账号。

{新建文档26个账号以下都不会出现该问题}

关键信息:如果在出问题的文档上不去删除文档不去新建文档。就在目前的文档点击删除里面的内容在复制新的上去他就不会出现以上出错的问题。无论放多少个都不会出问题!

从上面用户给我的测试结果来看,问题原因可能出在安卓系统和windwos系统的对txt文本的编码方式不同上了。于是仔细查看脚本执行完zm.FileDeleteLine和zm.FileWriteLine命令后,文本编码有没有变化。

zm.FileDeleteLine和zm.FileWriteLine执行前,在notepad++右下角显示的文本编码如下图:

windows(CR LF)  UTF-8  INS

编码为:windows(CR LF)  UTF-8  INS

zm.FileDeleteLine和zm.FileWriteLine执行前,在notepad++右下角显示的文本编码如下图:

编码为:Unix(LF) UTF-8 INS

编码为:Unix(LF) UTF-8 INS

由此可以看出,执行了zm.FileDeleteLine和zm.FileWriteLine命令后,编码方式确实是变化了。这也就可以理解用户反馈信息中的【如果在出问题的文档上不去删除文档不去新建文档。就在目前的文档点击删除里面的内容在复制新的上去他就不会出现以上出错的问题。无论放多少个都不会出问题!】这句话了。

问题继续深究,点击notepad ++ 的【视图-显示符号-显示所有字符】,会发现下面的问题:

windows(CR LF)  UTF-8  INS如图:

windows(CR LF)  UTF-8  INS换行符为:CRLF

Unix(LF) UTF-8 INS如图:

Unix(LF) UTF-8 INS的换行符为LF

从上面的图中我们可以看到,编码为【windows(CR LF)  UTF-8  INS】的换行符是CR LF,而【Unix(LF) UTF-8 INS】的换行符是LF,少了2个字符,这是不是可以验证用户说的【26个后面加一位27后面就加2位,以此类推。】这句话呢?

通过上面的研究,相信大家都知道解决方法了,那就是在账号文本的时候,就手动把编码方式从【windows(CR LF)  UTF-8  INS】改为【Unix(LF) UTF-8 INS】就可以了。

在notepad++中把编码方式从【windows(CR LF)  UTF-8  INS】改为【Unix(LF) UTF-8 INS】方法为:

1、双击右下角的windows(CR LF)。
2、在弹出的菜单中,选择【转换为UNIX格式】就可以了。

notepad++转换编码格式

到这里,关于使用紫猫插件zm.FileWriteLine和zm.FileDeleteLine命令出现的文本错乱问题就解决了,自己为了做个记录,同时也为遇到该问题的朋友们提供下解决方法,特意写了这边文章发布在个人的网站【村姑网】上面,希望对大家有用。

如果你会易语言,如果你想自己编写一个自动编码转换的程序的话,您可以查看【txt文本文件编码windows(CR LF) UTF-8 INS转换Unix(LF) UTF-8 INS换行符易语言实现的方法】这篇文章。

《按键精灵手机助手使用紫猫插件zm.FileWriteLine和zm.FileDeleteLine命令实现utf-8文本行循环后,总行数增加的问题》地址:www.cunguer.com/article/361.html,本文来自村姑网,您身边的IT专家 www.cunguer.com,转载请注明出处,您的支持是我们创作的源泉~!

看了《按键精灵手机助手使用紫猫插件zm.FileWriteLine和zm.FileDeleteLine命令实现utf-8文本行循环后,总行数增加的问题》的还看了:
推荐内容