痒痒 发表于 2012-2-29 09:40:51

【已解决】如何实现没有规律字母递增?

本帖最后由 痒痒 于 2012-2-29 16:04 编辑

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

如何实现这种递增?


www378660084 发表于 2012-2-29 10:57:10


#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

痒痒 发表于 2012-2-29 11:09:03

回复 2# www378660084


    谢谢回复 ,现在点确定后会一直循环,怎么控制只循环一次呢。

netegg 发表于 2012-2-29 11:13:42

该回去补语文了,居然没看明白什么意思

www378660084 发表于 2012-2-29 11:13:58

回复 3# 痒痒


把while删掉~~~~~~~~~~~~

痒痒 发表于 2012-2-29 11:31:09

回复 4# netegg

是我表述的不清楚吧。

netegg 发表于 2012-2-29 11:36:16

回复 6# 痒痒
从你给的样本来看,是说后面的字母和数量都随机吗

痒痒 发表于 2012-2-29 11:38:31

回复 7# netegg
不是随机的,是固定这几个(S,M,L,XL)。

netegg 发表于 2012-2-29 11:47:10

本帖最后由 netegg 于 2012-2-29 11:49 编辑

回复 8# 痒痒

那么随机(没有规律)指的是什么

痒痒 发表于 2012-2-29 11:48:15

回复 9# netegg

只是没有规律,不是像ABCD这样有规律的。

netegg 发表于 2012-2-29 11:51:29

回复 10# 痒痒
如果固定那几个串,自己做个数组,用索引标识出来不就有规律了吗,就像2楼的处理

痒痒 发表于 2012-2-29 11:54:30

回复 11# netegg


    谢谢,现在已经明白数组怎么操作了

afan 发表于 2012-2-29 15:41:00

...如果我想设置一个热键来分四次把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]
查看完整版本: 【已解决】如何实现没有规律字母递增?