找回密码
 加入
搜索
查看: 5034|回复: 12

[AU3基础] 【已解决】如何实现没有规律字母递增?

 火.. [复制链接]
发表于 2012-2-29 09:40:51 | 显示全部楼层 |阅读模式
本帖最后由 痒痒 于 2012-2-29 16:04 编辑

在输入框里输入032012165-010S,然后
第一次按粘贴填写到表格是032012165-010S
第二次按粘贴变为032012165-010M
第三次按粘贴变为032012165-010L
第四次按粘贴变为032012165-010XL
第五次按粘贴变为032012165-010XXL

如何实现这种递增?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-2-29 10:57:10 | 显示全部楼层

#include<Array.au3>
Dim $arrCount = 4
Dim $array[4] = ['S','M','X','XL']

$txt=InputBox("x","x","1231321-13415M")
$sizeFind=StringRegExp($txt,"[S|M|X|XL]$",3)
If @error Then Exit

$size=$sizeFind[0]
$str = StringRegExpReplace($txt,"[S|M|X|XL]$","")

While True
        $size = turn($array,$size,$arrCount)
        MsgBox(0,0,$str&$size)
WEnd


Func turn($arr,$s,$max)
        $index = _ArraySearch($arr,$s)
        If $index>=$max-1 Then 
                Return $arr[0]
        Else 
                Return $arr[$index+1]
        EndIf
EndFunc

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2012-2-29 11:09:03 | 显示全部楼层
回复 2# www378660084


    谢谢回复 ,现在点确定后会一直循环,怎么控制只循环一次呢。
发表于 2012-2-29 11:13:42 | 显示全部楼层
该回去补语文了,居然没看明白什么意思
发表于 2012-2-29 11:13:58 | 显示全部楼层
回复 3# 痒痒


把while删掉~~~~~~~~~~~~
 楼主| 发表于 2012-2-29 11:31:09 | 显示全部楼层
回复 4# netegg

是我表述的不清楚吧。
发表于 2012-2-29 11:36:16 | 显示全部楼层
回复 6# 痒痒
从你给的样本来看,是说后面的字母和数量都随机吗
 楼主| 发表于 2012-2-29 11:38:31 | 显示全部楼层
回复 7# netegg
不是随机的,是固定这几个(S,M,L,XL)。
发表于 2012-2-29 11:47:10 | 显示全部楼层
本帖最后由 netegg 于 2012-2-29 11:49 编辑

回复 8# 痒痒

那么随机(没有规律)指的是什么
 楼主| 发表于 2012-2-29 11:48:15 | 显示全部楼层
回复 9# netegg

只是没有规律,不是像ABCD这样有规律的。
发表于 2012-2-29 11:51:29 | 显示全部楼层
回复 10# 痒痒
如果固定那几个串,自己做个数组,用索引标识出来不就有规律了吗,就像2楼的处理
 楼主| 发表于 2012-2-29 11:54:30 | 显示全部楼层
回复 11# netegg


    谢谢,现在已经明白数组怎么操作了
发表于 2012-2-29 15:41:00 | 显示全部楼层
...如果我想设置一个热键来分四次把S,M,L,XL输出,第一次输出S,第二次输出M,到XL就结束。应该怎么做呢... 痒痒 短消息于 2012-2-29 15:02
Local $array[5] = ['S', 'M', 'X', 'XL', 'XXL']
For $i = 0 To 4
        Assign('~' & $array[$i], $i)
Next

GUICreate('', 300, 150)
$iInPut = GUICtrlCreateInput('032012165-010S', 10, 40, 200, 20)
$iBtn = GUICtrlCreateButton('填写', 100, 100, 100, 23)

GUISetState()
While 1
        $msg = GUIGetMsg()
        Switch $msg
                Case -3
                        Exit
                Case $iBtn
                        $sizeFind = StringRegExp(GUICtrlRead($iInPut), '(?i)(.+?)(XXL|XL|[SMX])$', 3)
                        If @error Then ContinueLoop
                        If Eval('~' & $sizeFind[1]) = 4 Then ContinueLoop MsgBox(48, '', '到头了')
                        GUICtrlSetData($iInPut, $sizeFind[0] & $array[Eval('~' & $sizeFind[1]) + 1])
        EndSwitch
WEnd
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-19 12:37 , Processed in 0.116177 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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