大佬们好!!!小弟遇到个问题,实在不晓得怎么解决了.
多个模拟器上运行手机按键脚本,模拟器之间是时间错开的读 写 共享目录下的同一个文本,
假设有2个模拟器运行,
首先,第一个模拟器上脚本读写完之后,共享文本内的数据是正常的,
再次,第二模拟器读写后也是正常的,
第三次,第一个模拟器再次读入的时候,我通过脚本运行日志发现,文本里面的数据就不完整了.最后一行的数据丢失了一部分. 手动打开查看被读写的那个文本看到最后行的数据也是不完整了.
比如文本里面有20行数据,以"账号---密码---记录日期"这样的格式一行一个
在第三次模拟器运行读取的时候,最后一行的数据就不完整了.类似变成这样,"账号---密码--",丢掉一部分,随着模拟器之间相互读写操作次数越多,数据也丢失得越来越多.
丢失数据是从文本种最后一行开始丢失一部分,然后越丢越多.
但是若只运行一个模拟器去读写,数据不会丢失.运行多久都没问题, 就是在多个模拟器运行后,相互读写后,就会丢失数据,运行越久,丢失的数据越多.
用紫猫的读写命令:zmFile.ReadLines 和 zmFile.WriteLines
或者用手机按键自带的官方file.lua 命令:File.ReadLines 和 File.WriteLines 都试过,都是这样丢数据
ReadLines 意思是:读取指定文本后返回数组,数组成员对应每行
WriteLines 意思是:把数组成员存入文本中,数组每个成员对应存入一行.
代码中存入时,对数据重新组合了的.把运行过的数据进行标记,使其不让重复运行.
请问大佬们,这种有什么办法解决吗?
处理过的思路,考虑到可能是手机按键精灵,对于文本读写后占用了此文本的情况.
1`代码中用写入临时文本,然后再把临时文本名重命名为真正读取的文本名,测试后还是会丢数据
2`在读写完文本后,也就是模拟器执行完错位时间前,代码中去读写下临时文本.以达到释放的效果,但是还是会丢数据.