【已解决】如何实现没有规律字母递增?
本帖最后由 痒痒 于 2012-2-29 16:04 编辑在输入框里输入032012165-010S,然后
第一次按粘贴填写到表格是032012165-010S
第二次按粘贴变为032012165-010M
第三次按粘贴变为032012165-010L
第四次按粘贴变为032012165-010XL
第五次按粘贴变为032012165-010XXL
如何实现这种递增?
#include<Array.au3>
Dim $arrCount = 4
Dim $array = ['S','M','X','XL']
$txt=InputBox("x","x","1231321-13415M")
$sizeFind=StringRegExp($txt,"$",3)
If @error Then Exit
$size=$sizeFind
$str = StringRegExpReplace($txt,"$","")
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
Else
Return $arr[$index+1]
EndIf
EndFunc
回复 2# www378660084
谢谢回复 ,现在点确定后会一直循环,怎么控制只循环一次呢。 该回去补语文了,居然没看明白什么意思 回复 3# 痒痒
把while删掉~~~~~~~~~~~~ 回复 4# netegg
是我表述的不清楚吧。 回复 6# 痒痒
从你给的样本来看,是说后面的字母和数量都随机吗 回复 7# netegg
不是随机的,是固定这几个(S,M,L,XL)。 本帖最后由 netegg 于 2012-2-29 11:49 编辑
回复 8# 痒痒
那么随机(没有规律)指的是什么 回复 9# netegg
只是没有规律,不是像ABCD这样有规律的。 回复 10# 痒痒
如果固定那几个串,自己做个数组,用索引标识出来不就有规律了吗,就像2楼的处理 回复 11# netegg
谢谢,现在已经明白数组怎么操作了 ...如果我想设置一个热键来分四次把S,M,L,XL输出,第一次输出S,第二次输出M,到XL就结束。应该怎么做呢... 痒痒 短消息于 2012-2-29 15:02 http://www.autoitx.com/images/common/back.gifLocal $array = ['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|)$', 3)
If @error Then ContinueLoop
If Eval('~' & $sizeFind) = 4 Then ContinueLoop MsgBox(48, '', '到头了')
GUICtrlSetData($iInPut, $sizeFind & $array) + 1])
EndSwitch
WEnd
页:
[1]