求怎么让一个变量依次给与一些没有规则的数字呢?[已解决]
本帖最后由 sex123 于 2011-6-2 07:44 编辑我以前用按键精灵,只懂一点点的循环 while endwhile之类,也懂i=i+1
现在我有个问题,怎么让一个变量i依次是一些没有规则的数字,然后,让变量i走一遍循环呢?
比如,让i等于一些数字 23,45,89,12,44,23,72,21
之后让i进入循环执行有关命今,直到所有的数字都试过一遍呢? 本帖最后由 netegg 于 2011-5-25 03:47 编辑
#include <array.au3>
local $aA =_arraycreate(23, 45, 89, 12, 44, 23, 72, 21)
for $i in $aA
msgbox(0,0,$i)
next不知道是不是这意思 差不多吧,可是数组里的数每次都不一定是多少,一般要输入三十个左右。有什么好办法吗?
是不是写个对话框,让用户自已一个一个输入数字。然后让程序跑循环呢? 回复 3# sex123
那要看具体问题了,_arraycreate目前只支持创建20个元素的数组
lobal $string = '23,45,89,12,44,23,72,21 '
$aA = stringsplit($string. ',' , 2)
fo $i in $aA
msgbox()
next
回复sex123
那要看具体问题了,_arraycreate目前只支持创建20个元素的数组
netegg 发表于 2011-5-26 06:23 http://www.autoitx.com/images/common/back.gif
什么时候新增了个_ArrayCraete函数了?
请蛋蛋兄给个链接 ; #NO_DOC_FUNCTION# =============================================================================================================
; Name...........: _ArrayCreate
; Description ...: Create a small array and quickly assign values.
; Syntax.........: _ArrayCreate ($v_0 [,$v_1 [,... [, $v_20 ]]])
; Parameters ....: $v_0- The first element of the array
; $v_1- The second element of the array
; ...
; $v_20 - The twenty-first element of the array
; Return values .: Success - The array with values
; Author ........: Dale (Klaatu) Thompson, Jos van der Zande <jdeb at autoitscript dot com> - rewritten to avoid Eval() errors in Obsufcator
; Modified.......: Ultima
; Remarks .......: Arrays of up to 21 elements in size can be created with this function.
; Related .......:
; Link ..........:
; Example .......: Yes
; ===============================================================================================================================帮助里没列出来吧 本帖最后由 netegg 于 2011-5-26 12:25 编辑
一直就有,不过帮助总是不写,可能就是因为只支持创建20个元素的缘故 所谓的不知道是什么数,是指这个数是随机的?还是需要用户指定的?还是需要从哪里获取的?随机用Random函数产生吧,用户指定就建立个输入对话框让用户手动输入,要获取那就要看实际情况了,反正最后就是把这几个数给放进数组里呗 所谓的不知道是什么数,是指这个数是随机的?还是需要用户指定的?还是需要从哪里获取的?随机用Random函数 ...
飘云 发表于 2011-5-26 14:28 http://www.autoitx.com/images/common/back.gif
不是随机产生的,是特定的一组数,只是每次由客户决定是些什么数。一般在三十几个左右。不知道这个函数能不能用于字母,因为不只是由数字组成,也有可能里面参杂字母。 本帖最后由 love5173 于 2011-5-26 16:55 编辑
回复 5# netegg
数组本身就支持直接录入,何必先放到字符串再转换呢#include <Array.au3>
Dim $aArray =
For $i = 1 To UBound($aArray)
$aArrayCombo = _ArrayCombinations($aArray, $i, ",")
_ArrayDisplay($aArrayCombo, "iSet = " & $i)
Next
本帖最后由 netegg 于 2011-5-27 07:16 编辑
关键是他输入的数量不确定,没法直接定义数组,除非定义不确定数组,然后在每次循环返回或在开始循环的时候索引加一,虽然也是一种方法. 本帖最后由 netegg 于 2011-5-27 07:33 编辑
回复 11# love5173
你这样虽然是个方法,但如果第六个元素是1呢,还要加判断吧,是不是太累了,另外如果开始给定数组是空数组呢,怎么定义,当然,
这不属于这个话题了,不过多考虑可能的情况以后如果碰到的话不至于想不明白
另外,建议你看看combination的用法,这个函数不是用来添加元素的
还有,楼主的意图到底是什么,那30个数到底是怎么产生的,最好把过程和所需结果大致写出来 很久没来了,来了就发个贴吧
楼主是不是这个意思?
输入框中可以用数字或字母加数字组合,用逗号隔开输入即可
$str = InputBox ("","" ,"23, 45, 89, 12, 44, 23, 72, 21")
$aStr = StringSplit($str,",")
For $i=1 To $aStr
MsgBox (0,$i,$aStr[$i])
Next 回复 13# netegg
我是个乖孩子,我给你发的这个代码是帮助文件里的,你说他不好我也无话可说,我当时只是给你举例而已呵呵
页:
[1]
2