按键精灵重复动作很慢(「按键精灵」去重复写入文本的函数)

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。

相关参考