allcapone1912 Posted August 23, 2014 Posted August 23, 2014 i need to get random id from a list each time unique id for example list contain 1 2 3 4 if the first time function set id=1 than the second one function can set 2,3,4(all except 1) can someone give me some idea?
guinness Posted August 23, 2014 Posted August 23, 2014 Use Random() to create an index of the list number and then process. So I will demonstrate with an array. #include <MsgBoxConstants.au3> Local $aList = [100, 200, 300, 99] Local $iIndex = Random(0, UBound($aList) - 1, 1) MsgBox($MB_SYSTEMMODAL, '', $aList[$iIndex]) allcapone1912 1 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
mikell Posted August 23, 2014 Posted August 23, 2014 You can also randomly sort the list and then loop through it #include <Array.au3> Local $aArray[10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] _ArrayDisplay($aArray, "1D - Original") _ArrayShuffle($aArray) _ArrayDisplay($aArray, "1D - Shuffled")
allcapone1912 Posted August 23, 2014 Author Posted August 23, 2014 i get the idea but still can not apply to my script my script have to open all program only once Run('"program1"') Run('"program2"') Run('"program3"') Run('"program4"') Run('"program5"') example: script start //step 1 run a program sleep //step 2 run the second program random(except one selected early)
Geir1983 Posted August 23, 2014 Posted August 23, 2014 create a two dimensional array. first dimension is the number of programs you need, second dimension contains the program name and a boolean variable you set if the program has been run. do the random function again if it selects an index with the boolean variable already set.
Solution abberration Posted August 23, 2014 Solution Posted August 23, 2014 (edited) Here's a way to create a random sequence of items: #include <array.au3> Dim $array[5] = ["excel.exe", "word.exe", "notepad.exe", "calc.exe", "vlc.exe"] $randomString = "" For $i = 1 To UBound($array) Step 1 $rand = Random(0, UBound($array) - 1, 1) $randomString = $array[$rand] & "|" & $randomString _ArrayDelete($array, $rand) Next $randomString = StringTrimRight($randomString, 1) ;~ MsgBox(0, "", $randomString) $randomArray = StringSplit($randomString, "|", 2) _ArrayDisplay($randomArray) To put it to use: #include <array.au3> Dim $array[5] = ["excel.exe", "word.exe", "notepad.exe", "calc.exe", "vlc.exe"] For $i = 1 To UBound($array) Step 1 $rand = Random(0, UBound($array) - 1, 1) Run($array[$rand]) _ArrayDelete($array, $rand) Next Edited August 23, 2014 by abberration Easy MP3 | Software Installer | Password Manager
allcapone1912 Posted August 23, 2014 Author Posted August 23, 2014 Here's a way to create a random sequence of items: #include <array.au3> Dim $array[5] = ["excel.exe", "word.exe", "notepad.exe", "calc.exe", "vlc.exe"] $randomString = "" For $i = 1 To UBound($array) Step 1 $rand = Random(0, UBound($array) - 1, 1) $randomString = $array[$rand] & "|" & $randomString _ArrayDelete($array, $rand) Next $randomString = StringTrimRight($randomString, 1) ;~ MsgBox(0, "", $randomString) $randomArray = StringSplit($randomString, "|", 2) _ArrayDisplay($randomArray) To put it to use: #include <array.au3> Dim $array[5] = ["excel.exe", "word.exe", "notepad.exe", "calc.exe", "vlc.exe"] For $i = 1 To UBound($array) Step 1 $rand = Random(0, UBound($array) - 1, 1) Run($array[$rand]) _ArrayDelete($array, $rand) Next Its perfect,thanks for help
guinness Posted August 23, 2014 Posted August 23, 2014 allcapone1912,Replace Dim with Local or Global. Dim has its uses, this is not one of them. 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
allcapone1912 Posted August 25, 2014 Author Posted August 25, 2014 allcapone1912, Replace Dim with Local or Global. Dim has its uses, this is not one of them. Local dont work for my system ;Script Local $array[4] $array[0] = $Random1 ;step1 $array[1] = $Random2 ;step2 $array[2] = $Random3 ;step3 $array[3] = $Random4 ;step4 For $i = 1 To UBound($array) $rand = Random(0, UBound($array) - 1, 1) NEXT run() first 3 step make OK(unique) but the last one(fourth one) get an array used early in first 3 step if i replace Local with Dim everything work perfect
mikell Posted August 25, 2014 Posted August 25, 2014 A little complicated #include <array.au3> Local $array[5] = ["excel.exe", "word.exe", "notepad.exe", "calc.exe", "vlc.exe"] _ArrayShuffle($array) For $i = 0 to UBound($array)-1 _ArrayDisplay($array) Msgbox(0,"", $array[0]) _ArrayDelete($array, 0) Next
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