TC官方合作论坛

标题: 请教字母+数字的账号递增怎么写(已解决) [打印本页]

作者: yyqcome    时间: 2017-2-23 14:58
标题: 请教字母+数字的账号递增怎么写(已解决)
本帖最后由 yyqcome 于 2017-2-24 08:20 编辑

玩个游戏,账号特别多,例如ABC001   ABC002   ABC003...ABC100
每次输入账号特别繁琐。想依次登录账号。也想给别人用,就不太方便做成TXT格式直接读取。。。

自己写的时候思路是这样
例如ABC001
先截取从右边数的纯数字001=变量 账号右
再截取从剩下左边的文字ABC=变量 账号左
这些都可以正常写
但是当我用001+1的时候,TC算出来为2
最后我把 账号左&账号右,就得出ABC2...不是我想得到的ABC002~

上面都是废话。。。辛苦各位大神看完。。

求问~~ 001+1如何得出002,tc写001+1得出的结果是2,不是002
////////////////////////////分割线,上面问题,下面解决问题/////////////////////////////////

谢谢各位,这么简单的问题也要麻烦各位帮忙想办法真是过意不去,昨晚已经解决.代码如下(十分粗糙,各位随意看看):


//主窗:窗口句柄
//x:每次账号递增+x,有这个X,就可以每次+1或者+2。。。或+更大
//位数1:账号右侧数字段应该的长度
//位数:账号右侧数字+1处理后的长度(可能没有前面的0了)


变量 线程ID,主窗,x,位数,位数1
功能 输入账号_初始化()
    x=0
结束




功能 热键3_热键()
    线程ID=线程开启("执行1","")
结束


功能 执行1(a,b,ret,账号字母段,账号长度,账号数字段,账号,i)
    a = 编辑框获取文本("编辑框0")//编辑框0为账号
    b = 编辑框获取文本("编辑框1")//编辑框1为密码
   
    if(是否整型(a)) ///如果账号是纯数字,就直接递增账号
        账号=a+x
        调试输出(账号
    else       ///如果账号是字母+数字,从这里开始到合成账号,都是解决这个问题的
        
        
        for(i = 1; i < 99999; i++)   
            ret=字符串截取右侧(a,i)
            if(是否整型(ret))
            else
                break
            end
        end   
        账号长度=字符串长度(a)
        账号字母段=字符串截取左侧(a,账号长度+1-i)
        账号数字段=字符串截取右侧(a,i-1)
        位数=i-1
        
        
        账号数字段=账号数字段+x
        
///本问题解决办法部分
        for(var l = 0; l < 9999; l++)
            位数1=字符串长度(账号数字段)
            调试输出(位数1)
            if(位数1<位数)
                账号数字段="0"&账号数字段
                调试输出(账号数字段)
               
            else
                break
            end
        end
        
        账号=账号字母段&账号数字段
        
    end  
   ///本问题解决办法部分
   
   
   
   
   
   
   
   
    主窗=窗口得到顶层窗口句柄()
    窗口发送字符串(主窗,账号)
    sleep(100)
    窗口提交按键(主窗,9)
   
    sleep(100)
    窗口发送字符串(主窗,b)
    窗口提交按键(主窗,9)
    sleep(100)
    x=x+1
结束



作者: chen1882729    时间: 2017-2-23 15:31
用ABC1001+1 的方式就很简单了
作者: veeyoo    时间: 2017-2-23 16:15
如果后面数字是确定位数的话可以这样:
账号右=字符串截取右侧("000"+账号右,3)
作者: 千叶de悠一    时间: 2017-2-23 16:36
补0 不就行了
作者: chen1882729    时间: 2017-2-23 17:03
veeyoo 发表于 2017-2-23 16:15
如果后面数字是确定位数的话可以这样:
账号右=字符串截取右侧("000"+账号右,3) ...

如果超过10,你这样就不行了
作者: veeyoo    时间: 2017-2-23 19:40
chen1882729 发表于 2017-2-23 17:03
如果超过10,你这样就不行了

可以的,反正是窃取右侧三位
作者: 言术    时间: 2017-2-24 06:37
    变量 帐号左="ABC",帐号右=001
    循环(帐号右 < 120)
        帐号右++
        循环(字符串长度(帐号右) < 3)
            帐号右="0"&帐号右
        结束
        调试输出(帐号左&帐号右)
    结束
作者: laowantong    时间: 2017-2-24 07:45
卸载TXT文本文件里,每行一个,按次序读即可




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1