使用按键精灵安卓/ios辅助工具脚本开发中一些写常用的功能性的代码段分享:
(1) 不重复的写入文本
Dim path = "/sdcard/pictures/账号.txt"
Function FileWrite(path,str)
Dim arr = file.readlines(path)
If Len(arr) = 0 Then
File.Write(path, str&"\r\n")
Else
For i = 1 To Len(arr)
If arr[i] = str Then
Exit For
End If
If i = Len(arr) Then
File.Append(path, str&"\r\n")
End If
Next
End If
End Function
(2)文本读一行删一行
Dim path = "/sdcard/pictures/账号.txt"
TracePrint fileReadLine(path)
Function fileReadLine(path)
Dim str = file.readline(path,1)
If Len(str) > 0 Then
file.DeleteLine path, 1
fileReadLine = str
Else
TracePrint "文本内容已空"
End If
End Function
(3)获取小精灵包名
TracePrint getPackage()
Function getPackage()
Dim path = GetTempDir()
Dim arr = split(path, "/")
getPackage = arr[ubound(arr)]
End Function
(4)对数组进行排序
Dim arr = {13,7,4,18,17,26,7,19,10}
Dim ret = sorted(arr)
TracePrint encode.TableToJson(ret)
Function sorted(arr)
Dim num
For UBOUND(arr)
For i = 1 To UBOUND(arr)
If arr[i] > arr[i + 1] Then
num = arr[i]
arr[i] = arr[i + 1]
arr[i+1] = num
End If
Next
Next
sorted = arr
End Function
(5)查找数组最大值和最小值
Dim Matharr = {13,7,4,18,17,26,7,19,10}
Traceprint "数组中最大值:",MathMax (arr)
TracePrint Encode.TableToJson(arr) //修改了数组内容
Traceprint "数组中最小值:",MathMin (arr)
Function MathMax(arr)
For i = 1 To UBOUND(arr)
If arr[i] > arr[i + 1] Then
arr[i+1] = arr[i]
End If
Next
MathMax = arr[len(arr)]
End Function
Function MathMin(arr)
For i = 1 To UBOUND(arr)
If arr[i] < arr[i + 1] Then
arr[i+1] = arr[i]
End If
Next
MathMin = arr[len(arr)]
End Function
(6)拆分打码平台的坐标返回值
Import "shanhai.lua"
Dim ret = "435,147|684,352|224,66|451,116"
splitCoordinate(ret)
Function splitCoordinate(ret)
Dim arr = shanhai.RegexFindEx(ret,"(%d+),(%d+)")
For i = 1 To Len(arr)
TracePrint arr[i][1],arr[i][2]
Next
End Function
(7)字符串拆分成数组
Dim str = "12345456"
Dim arr = strAsArr(str)
TracePrint encode.TableToJson(arr)
Function strAsArr(str)
Dim arr = {null}
For i = 1 To Len(str)
arr[i] = mid(str,i,1)
Next
strAsArr = arr
End Function
(8)定时脚本
import "shanhai.lua"
Dim 小时 = 19
Dim 分钟 = 44
If fixedTime(小时, 分钟) Then
TracePrint "到时间了"
Else
TracePrint "没有到时间"
End If
Function fixedTime(h, m)
Dim t = Now()
Dim arr_time = shanhai.RegexFind(t,"(%d+):")
TracePrint arr_time[1],arr_time[2]
If cint(arr_time[1]) = cint(h) and cint(arr_time[2]) = cint(m) Then
fixedTime = true
End If
End Function