带记忆功能的读取账号结构思路和实例

思路 :读取和写入脚本配置的命令 readconfig writeconfig 两个命令可以方便的实现脚本的记忆功能 注意writeconfig 第三个参数必须为true  脚本开始 我们读取下脚本配置的记忆 看看有没有上次运行到哪行账号的记录 有则读取 脚本读取账号循环就从这个记忆位置开始 依次读取 然后就是整个读取账号循环结束了 不要忘记把脚本配置的记忆重置 方便下次又从第一行开始


直接看实例 没什么值得多说的 例子有些繁琐 还是我的老毛病 想的太多

账号文件内容格式

zhanghao111----mima111
zhanghao222----mima222
zhanghao333----mima333
zhanghao444----mima444
zhanghao555----mima555
zhanghao666----mima666
zhanghao777----mima777
zhanghao888----mima888
zhanghao999----mima999

源码

//1.读取账号文件内容
Dim 本行内容,当前行数,起始行数,账号文件内容数组,脚本记录的行数,脚本记录的行内容,当前账号,当前密码,arr,brr,结果
Dim 账号文件路径=GetSdcardDir()&"/Pictures/1.txt"
TracePrint 账号文件路径


//2.对账号文件做基础的判断和处理 文件是否存在 内容是否对 是否去掉了可能的Bom头和乱码 去掉空行等等 这里粗略的写一写
结果 = Dir.Exist(账号文件路径)
If 结果 = 0 Then 
    For 3
        ShowMessage "["&账号文件路径&"] 不存在 请检查"
        Delay 2000
    Next
    EndScript
End If
//3.获取账号文件内容转化为数组
账号文件内容数组 = file.ReadLines(账号文件路径)

//4.读取脚本本身的配置 看看是否记录了上次的行数和对应的行内容 判断里面的内容是否正常 不正常就从第一行开始 正常就按照脚本配置的内容进行
起始行数=0
脚本记录的行数 = ReadConfig("脚本记录的行数")
脚本记录的行内容 = ReadConfig("脚本记录的行内容")

If Trim(脚本记录的行数) = "" or Trim(脚本记录的行内容) = "" Then 
    //如果脚本记录的上次的行数和行内容为空 那么这个记录就不合法 就从第一行开始了
    起始行数 = 0
    showmessage "起始记录是第["&cstr(起始行数+1)&"]条"
    Delay 500    
ElseIf not IsNumeric(Trim(脚本记录的行数)) or CInt(Trim(脚本记录的行数)) < 0 Then
    //脚本记录de阿上次的行数是不是数值 不是则不合法
    起始行数 = 0
    showmessage "起始记录是第["&cstr(起始行数+1)&"]条"
    Delay 500    
ElseIf InStr(1, Trim(账号文件内容数组(CInt(脚本记录的行数))), 脚本记录的行内容) < 1 Then
    //脚本记录的行数和行内容 在现在读取的账号文件的对应行上的内容 是否和脚本记录的行内容一致 不一致证明这个账号文件有变动 就从第一行开始
    起始行数 = 0
    showmessage "文件内容变动 起始记录是第{"&(起始行数+1)&"}条 "
    Delay 500   
Else 
    起始行数 = CInt(Trim(脚本记录的行数))
    showmessage "起始记录是第["& cstr(脚本记录的行数+1)  &"]条"
    Delay 1000    
End If
Delay 1000

//5.开始读取账号 读取前 把当前行数和行内容写入到脚本配置做记录  
For i = 起始行数 To UBOUND(账号文件内容数组) //注意i不是从0开始的 就是说不一定是从第一行开始的
    Rem 主循环开头
    
    ////把当前行数和行内容写入到脚本配置里面 作为记录
    当前行数 = i
    本行内容 = trim(账号文件内容数组(i))
    
    WriteConfig "脚本记录的行数", CStr(当前行数), true
    WriteConfig "脚本记录的行内容", 本行内容, true //第三个参数必须为true
    
    ////分析出账号和密码 准备给脚本操作提供准备
    arr = Split(本行内容, "----")
    当前账号 = Trim(arr(0))
    当前密码 = Trim(arr(1))
    
    If 当前账号 = "" or 当前密码 = "" Then //简单判断下账号密码合法性 不合法就直接跳到下个账号进行操作        
        goto 主循环结尾
    End If
    
    ////一些必要的脚本操作 这里暂时用个循环代替    
    For 10
        ShowMessage "第[" & CStr(当前行数 + 1) & "]行-账号[" & 当前账号 & "]-密码[" & 当前密码 & "] 进行登录签到."
        Delay 10
        ShowMessage "第[" & CStr(当前行数 + 1) & "]行-账号[" & 当前账号 & "]-密码[" & 当前密码 & "] 进行登录签到.."
        Delay 10
        ShowMessage "第[" & CStr(当前行数 + 1) & "]行-账号[" & 当前账号 & "]-密码[" & 当前密码 & "] 进行登录签到..."

        Delay 1000
    Next
    
    
    
    
    Rem 主循环结尾
    Delay 10
Next

//6 整个读取账号循环完毕不要忘记重置下脚本配置让脚本下次从第一行开始
ShowMessage "账号到底 重置记忆"
WriteConfig "脚本记录的行数", "", true
WriteConfig "脚本记录的行内容", "", true //第三个参数必须为true
Delay 2000
posted @ 2019-02-17 11:08  点-滴  阅读(504)  评论(0编辑  收藏  举报