按键精灵重复动作很慢(「按键精灵」去重复写入文本的函数)
Posted
篇首语:知识是种子,而好奇则是知识的萌芽。本文由小常识网(cha138.com)小编为大家整理,主要介绍了按键精灵重复动作很慢(「按键精灵」去重复写入文本的函数)相关的知识,希望对你有一定的参考价值。
按键精灵重复动作很慢(「按键精灵」去重复写入文本的函数)
大家好,我是3分钟学堂的郭立员,今天给大家带来一个比较实用的去重复内容后写入文本的函数。
应用场景
这个函数的常见使用场景有这些~
①记录账号
②提取接码群的验证码
③采集各类信息资料
由于具备写入功能,其实所有需要写入文本的地方都可以用这个命令。
原理
在写入文本前,先将要写入的内容和文本里面的内容逐个进行比较,确认不重复在进行写入操作。
操作过程
①判断文本是否存在,防止由于不存在文本路径的报错,如果不存再新建一个文本。
Dim path="/sdcard/pictures/abc.txt"If Dir.Exist(path) = 0 Then file.Write(path)End If
②读取文本中原有内容,存入数组中
Dim arr=file.readlines(path)
③判断数组是不是空内容,因为首次写入的时候,文本是空内容,那么数组最大下标就是-1。这种首次写入的情况,就直接写入,无需判断是否重复。
If UBOUND(arr) < 0 Then TracePrint "首次写入"End If
④非首次写入,我们要遍历数组内容,这里有两种方式,一是遍历全部内容,二是遍历最新的几条写入内容。
之所以有两种情况,是它们各有优缺点,第一种方式:优点是准确,缺点是当内容非常多的时候,遍历时间会比较长。第二种方式:优点是速度快,缺点是没有那么准确。要求速度的情况下用第二种,数据不是特别多的情况下用第一种。
Dim numIf 第一种情况 Then num = UBOUND(arr) ElseIf 第二种情况 Then num=10End IfFor i = 0 To num TracePrint arr(i)Next
⑤把要写入的内容和读取文本内容逐个比对,确认不重复写入文本第一行
For i = 0 To 10 If str = arr(i) Then Exit For End If If i = num Then file.WriteLine(path,1,str) End IfNext
细节注意
写入的内容在比对之前一定要转成字符串类型,因为遍历文本的内容是字符串,如果写入一个数字不转成字符串,因为数据类型的不同,虽然是同样的内容,也会认为是比对不同,从而重复写入。
给函数加入返回值,写入成功返回ture,写入失败返回false。
相关参考