//例子5:一个完整的读取txt内容循环读取出每行内容的结构 可以理解为循环帐号登录的结构 自己会检测账号文件是否发生变化 发生了变化从第一个位置开始 没变化则从脚本配置记录的位置开始
Dim 指定的起始记录,脚本记录账号,脚本记录密码,脚本记录行数,当前账号文件全部内容,当前账号文件全部内容数组
Dim 文件读取结果,本行内容,当前行数
//判断从哪行开始
指定的起始记录=0
//脚本记录的是 执行到的那个记录的 账号和密码 还有所在的行数
脚本记录账号=ReadConfig("账号","",true)
脚本记录密码=ReadConfig("密码","",true)
脚本记录行数=ReadConfig("行数","",true)
当前账号文件全部内容=""
当前账号文件全部内容 = Trim(File.Read(账号文件路径))
当前账号文件全部内容数组 = ""
当前账号文件全部内容数组=file.ReadLines(账号文件路径)
If Trim(脚本记录账号) = "" or Trim(脚本记录密码) = "" or Trim(脚本记录行数) = "" Then
Call show("起始记录是第一条")
Delay 500
指定的起始记录 = 0
ElseIf InStr(1, 当前账号文件全部内容, 脚本记录账号 & "----" & 脚本记录密码) < 1 Then //判断账号文件里面是否有那个账号密码组
Call show("起始记录是第一条")
Delay 500
指定的起始记录 = 0
ElseIf not IsNumeric(Trim(脚本记录行数)) or CInt(Trim(脚本记录行数)) < 0 Then
Call show("起始记录是第一条")
Delay 500
指定的起始记录 = 0
ElseIf UTF8.InStr(1, Trim(当前账号文件全部内容数组(CInt(脚本记录行数))), 脚本记录账号 & "----" & 脚本记录密码) < 1 Then
Call show("文件内容变动 起始记录是第一条 ")
Delay 500
指定的起始记录 = 0
Else
Call show("起始记录是第["& cstr(指定的起始记录+1) &"]条")
Delay 1000
指定的起始记录 = CInt(Trim(脚本记录行数))
End If
文件读取结果 = File.ReadLines(账号文件路径)
Call show("本次账号遍历开始 起点是:" & CStr(指定的起始记录) & ",终点:" & CStr(UBOUND(文件读取结果)))
Delay 500
//二 遍历账号数组 开始循环执行 (1)遍历到最后停止即可 无需 (2)依然需要记忆功能
For i = 指定的起始记录 To UBOUND(文件读取结果)
//为了避免空值
If Trim(文件读取结果(i)) = "" Then
goto 循环结尾
End If
本行内容 = ""
错误代码 = 0
本行内容=Trim(文件读取结果(i))
当前行数 = i
TracePrint 本行内容
brr = Split(本行内容, "----")
当前账号 = trim(brr(0))
当前密码 = Trim(brr(1))
//把行数 账号密码写入到配置文件
WriteConfig "账号",当前账号,true
WriteConfig "密码", 当前密码, true
WriteConfig "行数", CStr(当前行数), true
当前状态 = Trim(brr(2))
If 当前状态 = "提交成功" Then
ElseIf 当前状态 = "验证成功" Then
ElseIf 当前状态 = "永久封禁" Then
Else
Call show("[" & 当前账号 & "] 开始流程,是第[" & CStr(当前行数 + 1) & "]个账号")
Delay 1000
Call show("信息写入")
Delay 200
//这个是针对各种错误代码 进行的处理部分
If 错误代码 = 0 Then
Call 修改账号当前状态(本行内容,当前账号&"----"&当前密码&"----提交成功",账号文件路径)
ElseIf 错误代码 = 5 Then
ElseIf 错误代码 = 6 Then
ElseIf 错误代码 = 8 Then
ElseIf 错误代码 = 9 Then
ElseIf 错误代码 = 15 Then
ElseIf 错误代码 = 16 Then
Call 修改账号当前状态(本行内容,当前账号&"----"&当前密码&"----验证成功",账号文件路径)
// 17//1.重复写入账号密码依然无法登录
ElseIf 错误代码 = 17 Then
ElseIf 错误代码 = 20 Then
//错误代码=40
ElseIf 错误代码 = 40 Then
Call 修改账号当前状态(本行内容,当前账号&"----"&当前密码&"----永久封禁",账号文件路径)
Else
End If
End If
Rem 循环结尾
Delay 50
Next
Call show("本次账号循环结束 重置起始位置")
WriteConfig "账号","",true
WriteConfig "密码", "", true
WriteConfig "行数","",true
Delay 500