# Is there a way to pass multiple numbers to a function as a single parameter?

Go to solution Solved by Realm,

## Recommended Posts

So I've run into a very simple problem. I've looked at what I can think of in the documentation for an answer, and I have searched the forums, but I haven't found a solution just yet (mostly I'm not quite sure the query I should search for in this situation!). I'm really stumped on this one, and I thought maybe you folks could help.

I have a function:

```Do
DuckDuckGoose()
exit
until 1

func DuckDuckGoose(\$duck, \$goose)

For \$i= 1 to \$goose
if \$i = \$duck then
msgbox(0,"","Duck..")
continueloop
endif
msgbox(0,"","GOOSE!")
Next
endfunc```

I'm trying to find a simple way to send numbers to the function, if possible, using the \$duck parameter. Basically, I'd like to be able to send something like "1 to 3, 5", and have it skip those numbers in the loop. Anybody know a way I can do this?

Edited by Rohopo

##### Share on other sites

• Solution

Hello Rohopo,

Welcome to the AutoIt Forums

There are multiple options on how to achieve what you ask... mostly depending on how you will deliver your parameters to the function.

I made a couple quick and dirty examples.

First as guinness suggest by passing an array to the function:

```Local \$parameters[3] = [1,3,5]

Do
DuckDuckGoose2(\$parameters, 10)
Exit
Until 1

Func DuckDuckGoose2(ByRef \$duck, \$goose)

For \$i= 1 to \$goose
For \$d = 0 To UBound(\$duck)-1
If \$i = \$duck[\$d] Then
MsgBox(0,'Loop \$i = ' & \$i,'Duck =' & \$duck[\$d])
ContinueLoop
EndIf
Next
MsgBox(0,'Loop \$i = ' & \$i,"GOOSE!")
Next
EndFunc```

The next would be passing the the parameters in a string and splitting it inside the function. You can use any delimiter, but for this example I chose commas:

```Local \$duck_parameters = '1,3,5'

Do
DuckDuckGoose(\$duck_parameters, 10)
Exit
Until 1

Func DuckDuckGoose(\$duck, \$goose)
\$aDuck = StringSplit( \$duck, ',', 2 ) ;Splits the \$duck string into a zero based array
For \$i= 1 to \$goose
For \$d = 0 To UBound(\$aDuck)-1
MsgBox(0,'Loop \$i = ' & \$i,'Duck =' & \$aDuck[\$d])
ContinueLoop
EndIf
Next

MsgBox(0,'Loop \$i = ' & \$i,'GOOSE!')
Next
EndFunc```

Hope this helps & Happy Coding!

Realm

My Contributions: Calculate Unix time, or seconds since Epoch, accounting for your local timezone and daylight savings time. RegEdit Jumper: A Small & Simple interface based on Yashied's Reg Jumper Function, for searching Hives in your registry.

##### Share on other sites

Hey thanks folks. It really wasn't obvious just looking at the documentation what I should be looking for. This really helps me out! Thanks much!

## Create an account

Register a new account

• ### Recently Browsing   0 members

×

• Wiki

• Back

• #### Beta

• Git
• FAQ
×
• Create New...