Rohopo Posted February 3, 2013 Share 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 Link to comment Share on other sites More sharing options...
guinness Posted February 3, 2013 Share 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 Link to comment Share on other sites More sharing options...
Solution Realm Posted February 4, 2013 Solution Share 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. Link to comment Share on other sites More sharing options...
Rohopo Posted February 7, 2013 Author Share 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! 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