Javik Posted June 9, 2011 Posted June 9, 2011 (edited) Is it possible to make a function that when called will return more than one result? This is what I am trying to do, but I don't see how to return two results: Func RunCmd($cmd) [....] Return $stdout, $stderr EndFunc RunCmd("dir C:\") MsgBox (0,"Results", "Stdout: " & $stdout & @CRLF & "Stderr: " & $stderr) Edited June 9, 2011 by Javik
hannes08 Posted June 9, 2011 Posted June 9, 2011 Hi Javik, no, there is no such possibility. But you could pass variables and alter them using the "ByRef" statement. Regards,Hannes[spoiler]If you can't convince them, confuse them![/spoiler]
Malkey Posted June 9, 2011 Posted June 9, 2011 If you look at the example for StringReplace() in help file, the modified string is returned, and the number of replacements is returned in @Extended. For your own function you can use the SetError() function.
Moderators Melba23 Posted June 9, 2011 Moderators Posted June 9, 2011 Javik,Of course it is possible! Return an array with the elements set to the values you want to return: #include <Array.au3> $iA = 2 $iB = 3 $aRet = _Double($iA, $iB) _ArrayDisplay($aRet) Func _Double($v1, $v2) Local $aRet[2] $aRet[0] = $v1 * 2 $aRet[1] = $v2 * 2 Return $aRet EndFuncOr use ByRef as Hannes123 suggested. M23 antonioj84 1 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
water Posted June 9, 2011 Posted June 9, 2011 (edited) You can return values from a function by: The Return keyword. The return value can be a single variable or an array The macros @error and @extended.: Use function SetError to set this macros ByRef parameters: If you pass parameters to a function using ByRef you can change them in your function. A lot more ... Edit: Oops - too late. Edited June 9, 2011 by water My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Juvigy Posted June 9, 2011 Posted June 9, 2011 And the option that seems to be omitted: Your function can use recursion (advanced) or just write the results / return values in a file!
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