MattX Posted February 2, 2008 Share Posted February 2, 2008 I have in a script a few hundred variables. All declared as: Dim $ex1="variable 1" Dim $ex2="variable 2" Dim $ex3="variable 3" Dim $ex4="variable 4" Etc I am wondering how I could use the Random function to choose one ? Can someone give me a pointer ? Link to comment Share on other sites More sharing options...
Swift Posted February 2, 2008 Share Posted February 2, 2008 For $i = 0 To 100 Step 1 not sure on this...but this might be the idea... Link to comment Share on other sites More sharing options...
erezlevi Posted February 2, 2008 Share Posted February 2, 2008 I have in a script a few hundred variables. All declared as: Dim $ex1="variable 1" Dim $ex2="variable 2" Dim $ex3="variable 3" Dim $ex4="variable 4" Etc I am wondering how I could use the Random function to choose one ? Can someone give me a pointer ? Hi, you will need to build an algoritm of your own or use an existing one with Array to hold all the variables entries. you can put all the variables inside an array of 256 entries and then call that array using $i which: $i=Random (1,256,0) $m=$E[$i] msgbox (0,"this is $m:",$m) every time you will start the script $m will holds different values. Link to comment Share on other sites More sharing options...
MattX Posted February 2, 2008 Author Share Posted February 2, 2008 Hi, you will need to build an algoritm of your own or use an existing one with Array to hold all the variables entries. you can put all the variables inside an array of 256 entries and then call that array using $i which: $i=Random (1,256,0) $m=$E[$i] msgbox (0,"this is $m:",$m) every time you will start the script $m will holds different values. And there was me thinking it would be something like : Dim $ex1="variable 1" Dim $ex2="variable 2" Dim $ex3="variable 3" Dim $ex4="variable 4" $excuse = Random ( $ex1, $ex4 ) MsgBox(0, "box", $excuse) Thing is I have around 500 variables...... I'm not too sure on the Array method if I am restricted to 256 entries Link to comment Share on other sites More sharing options...
Kademlia Posted February 2, 2008 Share Posted February 2, 2008 CODEDim $test[5000] for $i = 1 to 4999 $test[$i] = "Hello i am " & $i Next $test[0] = UBound($test) $r = Random(1,$test[0]) $m=$test[$r] msgbox (0,"this is $m:",$m & " The random was: " & $r) Link to comment Share on other sites More sharing options...
erezlevi Posted February 2, 2008 Share Posted February 2, 2008 And there was me thinking it would be something like : Dim $ex1="variable 1" Dim $ex2="variable 2" Dim $ex3="variable 3" Dim $ex4="variable 4" $excuse = Random ( $ex1, $ex4 ) MsgBox(0, "box", $excuse) Thing is I have around 500 variables...... I'm not too sure on the Array method if I am restricted to 256 entries here is your solution: dim $E[5000]; an Array that holds 5000 var.... (amaizing haaa).... because you didn't use variables in the first place I guess those 500 variables are filling all of your config, so you will have to have 500 lines like these: $E[1]=$ex1 $E[2]=$ex2 ...... $E[500]=$ex500. which is petty but never mind I would use an Array to hold those, but it will solve you problem. Link to comment Share on other sites More sharing options...
MattX Posted February 2, 2008 Author Share Posted February 2, 2008 Never can get the hang of arrays - this just does nothing !! Dim $e="variable1" Dim $e="variable2" Dim $e="variable3" Dim $e="variable4" Dim $e="variable5" Dim $e="variable6" Dim $e="variable7" Dim $e="variable8" Dim $e="variable9" Dim $e="variable10" $i=Random (1,10,0) $m=$e[$i] msgbox (0,"this is $m:",$m) Link to comment Share on other sites More sharing options...
erezlevi Posted February 2, 2008 Share Posted February 2, 2008 Never can get the hang of arrays - this just does nothing !! Dim $e="variable1" Dim $e="variable2" Dim $e="variable3" Dim $e="variable4" Dim $e="variable5" Dim $e="variable6" Dim $e="variable7" Dim $e="variable8" Dim $e="variable9" Dim $e="variable10" $i=Random (1,10,0) $m=$e[$i] msgbox (0,"this is $m:",$m) hi, here is what you tried to do to your code: (but it is not working because you havn't declared $e[$x] as Array): $m=$e1 $m=$e5 $m=$e7 I guess you had alot of errors while checking it! because it will never work that way. you will have to insert your $eX to an Array. Link to comment Share on other sites More sharing options...
Kademlia Posted February 2, 2008 Share Posted February 2, 2008 You don´t understand an array MattX $e is ONE variable. if you: $e = 1 $e = 2 $e will ONLY be 2 and not 1 anymore. To put serveral things in "one" variable you have to create an array. A Array would be $e[sizeOFARRAY] at your script: Dim $e[10] $e[0] = "variable1" $e[1] = "variable2" aso. Look at my example: CODEDim $test[5000] for $i = 1 to 4999 $test[$i] = "Hello i am " & $i Next $test[0] = UBound($test) $r = Random(1,$test[0]) $m=$test[$r] msgbox (0,"this is $m:",$m & " The random was: " & $r) Link to comment Share on other sites More sharing options...
Developers Jos Posted February 2, 2008 Developers Share Posted February 2, 2008 try: Dim $e[11] $e[1] = "variable1" $e[2] = "variable2" $e[3] = "variable3" $e[4] = "variable4" $e[5] = "variable5" $e[6] = "variable6" $e[7] = "variable7" $e[8] = "variable8" $e[9] = "variable9" $e[10] = "variable10" $i = Random(1, 10, 0) $m = $e[$i] MsgBox(0, "this is $m:", $m) SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
MattX Posted February 2, 2008 Author Share Posted February 2, 2008 You don´t understand an array MattX $e is ONE variable. if you: $e = 1 $e = 2 $e will ONLY be 2 and not 1 anymore. Yeah, sorry - that was me thinking I was making the array then....[ yup I am daft ] With everyone's explanation and code I have this working now - thanks all !! [ and thanks for being so quick too !! ] Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now