找回密码
 加入
搜索
查看: 2699|回复: 8

[AU3基础] [已解决]求助一个循环,可以以00001,00002....这样的方式使用

  [复制链接]
发表于 2010-7-21 01:24:01 | 显示全部楼层 |阅读模式
本帖最后由 apibits 于 2010-7-21 11:30 编辑

如题,我正在研究这问题,搞得头晕....
循环的目的是根据提供的2个值 开头  最后  即这样:
00001
00002
00003
00004
....
00010
00011
....
00100
00101
只提供00001 和 最后的00101 请问如何设计呢
我想是For 单步- 1  但是一下子把"0"全部删掉了...怎样不要删掉呢?
跪求高手讲解~~~~
发表于 2010-7-21 09:06:05 | 显示全部楼层
不太明白lz为什么非要这样...
在循环之后得到$i的数值,然后根据数值来往前面加0不可以么?
For $i = 0 To 1000
        
Select ;确定前面0的个数
                        Case ($i < 10)
                                $ling = "000"
                        Case ($i >= 10 And $i < 100)
                                $ling = "00"
                        Case ($i >= 100 And $i < 1000)
                                $ling = "0"
                        Case Else
                                $ling = ""
                EndSelect
                MsgBox(0,"数值",$ling&$i)
                Next
发表于 2010-7-21 09:15:46 | 显示全部楼层
是你要的结果吗?
Local $val
For $i=1 To 101
        $val&=StringFormat("%05d\n",$i)
Next
MsgBox(0,0,$val)
 楼主| 发表于 2010-7-21 10:25:46 | 显示全部楼层
本帖最后由 apibits 于 2010-7-21 10:40 编辑

请教楼上,          "%05d\n"    在这里起什么作用,能解释下么
???


另外,如果我需要输出这些数字该怎么办呢
比如
FileWrite(@ScriptDir & "\Apibits.config",$val & "=10155748")这样
或者像2楼的那样
FileWrite(@ScriptDir & "\Apibits.config",$ling & $i & "=10155748")
只是2楼这样测试成功了...
用的是IniWrite函数
发表于 2010-7-21 10:55:12 | 显示全部楼层
StringFormat("%05d",$i)去掉/n。
%05d数字不足5位时左边补0。
/n添加换行符
 楼主| 发表于 2010-7-21 11:30:09 | 显示全部楼层
啊...差不多明白了...谢谢.
发表于 2010-7-21 11:50:13 | 显示全部楼层
3楼的办法靠谱
我那个做法太笨了
 楼主| 发表于 2010-7-21 12:55:40 | 显示全部楼层
3楼的办法靠谱
我那个做法太笨了
Ziya 发表于 2010-7-21 11:50



    关键是你的那个方法可用啊...
关于那个格式化文本的函数  我实在是不理解...郁闷..
现在成了这样....
$PcNumSta = "01" 
$PcNumExi = "99"
$Zero1 = ""
$Zero2 = ""
$Zero3 = ""

If StringLen($PcNumExi)=4 Then
        $Zero1 = "000"
        $Zero2 = "00"
        $Zero3 = "0"
ElseIf         StringLen($PcNumExi)=3 Then
        $Zero1 = "00"
        $Zero2 = "0"
        $Zero3 = ""
ElseIf         StringLen($PcNumExi)=2 Then
        $Zero1 = "0"
        $Zero2 = ""
        $Zero3 = ""
Else

EndIf        
For $i = 0 To $PcNumExi
        Select ;确定前面0的个数
    Case ($i < 10)
       $ling = $Zero1
    Case ($i >= 10 And $i < 100)
       $ling = $Zero2
    Case ($i >= 100 And $i < 1000)
       $ling = $Zero3
        Case Else
           $ling = ""
EndSelect
$Kill = $PcQz & $ling & $i & $PcHz
IniWrite(@ScriptDir & "\Fbl1.ini","Apibits",$Kill,"1024,768,32,60")
Next
看到了???  但是那个就是不成功....我郁闷的很.....
发表于 2010-7-21 13:05:07 | 显示全部楼层
$PcNumSta = "01" 
$PcNumExi = "99"
$PcQz = "前缀"
$PcHz = "后缀"
For $i = 0 To $PcNumExi
$Kill = $PcQz & StringFormat("%04d",$i) & $PcHz
IniWrite(@ScriptDir & "\Fbl1.ini","Apibits",$Kill,"1024,768,32,60")
Next
生成的是
[Apibits]
前缀0000后缀=1024,768,32,60
前缀0001后缀=1024,768,32,60
前缀0002后缀=1024,768,32,60
前缀0003后缀=1024,768,32,60
前缀0004后缀=1024,768,32,60
前缀0005后缀=1024,768,32,60
前缀0006后缀=1024,768,32,60
前缀0007后缀=1024,768,32,60
前缀0008后缀=1024,768,32,60
前缀0009后缀=1024,768,32,60
......

不是这样的么?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-3 14:20 , Processed in 0.091149 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表