Rohopo 0 Posted February 3, 2013 (edited) 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 February 3, 2013 by Rohopo Share this post Link to post Share on other sites
guinness 1,517 Posted February 3, 2013 Look at ByRef and arrays. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Share this post Link to post Share on other sites
Realm 18 Posted February 4, 2013 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 If $i = $aDuck[$d] Then 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: Unix Timestamp: 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 this post Link to post Share on other sites
Rohopo 0 Posted February 7, 2013 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! Share this post Link to post Share on other sites