; ; Author: jgpaiva ; ; Script Function: ; add some randomness to your life ; #NoEnv #NoTrayIcon #SingleInstance sendmode Input SetWorkingDir %A_ScriptDir% ScriptName = KaosGen Scriptversion = 1.1 FileInstall,cody.png,cody.png,1 RandomMin=0 RandomMax=10 outFile=output nColumns = 3 withTick:=true closeAfterGen:=true gosub,ReadIni arguments=%0% if(arguments>0){ mustGenerateArray:=false nColumns=1 }else mustGenerateArray:=true goSub,GuiOptions return mainProg: if(mustGenerateArray) { totalSize:= RandomMax - RandomMin +1 maxNumSize:=getSize(RandomMax) goSub,createArray }else{ goSub,readFile } gosub,randomize canceled:=false gosub,writeFile if(canceled) goSub,GuiOptions else if(closeAfterGen) exitapp else gosub,GuiOptions return getSize(num) { if(num=0) return 0 num:=abs(num) return floor(log(num)) } createArray: loop,% totalSize { numbers%A_Index%:=A_Index+RandomMin -1 } return readFile: counter:=0 loop,Read,%1%, { counter+=1 numbers%Counter%:=A_LoopReadLine } totalSize:=counter return randomize: loop,% totalSize { Random, OutputVar, 1,% totalSize - A_Index + 1 tempValue:= numbers%OutputVar% tempIndex:=totalSize - A_Index +1 numbers%OutputVar%:= numbers%tempIndex% numbers%tempIndex%:= tempValue } return writeFile: output= loop,% totalSize { current:= mod(A_Index -1,nColumns) if(withTick) output:=output "[ ]" output:= output " " numbers%A_Index% if(mustGenerateArray) { loop,% maxNumSize - getSize(numbers%A_Index%) +2 output:=output " " } else { output:=output " " } if(current=nColumns -1) output:= output "`n" } IfExist,%outFile%.txt { msgbox, 1, Overwrite?, File %outFile%.txt exists. Overwrite? IfMsgBox,Cancel { canceled:=true return } } FileDelete,%outFile%.txt FileAppend,%output%,%outFile%.txt return guiOptions: gui,1:default gui, Font, gui, Font, s10 if(firstRun) gui,add,tab2,h330 w400,Configuration|About|| else gui,add,tab2,h330 w400,Configuration||About| gui,tab,Configuration guiY:=60 if(mustGenerateArray) { guiy-=20 gui, add, groupbox, x20 y%guiy% w250 h100, Configure random sequence guiy+=30 gui, add, text, x30 y%guiY%, Smallest value: gui, add, edit, yp-3 xp+100 w60 r1 vRandomMin, %RandomMin% guiY+=30 gui, add, text, x30 y%guiY%, Largest value: gui, add, edit, yp-3 xp+100 w60 r1 vRandomMax, %RandomMax% guiY+=60 } else { gui,font,bold gui, add, text, x20 y%guiY%, -- Using data from file -- guiY+=30 gui,font, gui,font, s10 } gui, add, groupbox, x20 y%guiy% w250 h120, Configure output guiy+=30 gui, add, edit, y%guiy% x30 w60 r1 vnColumns, %nColumns% gui, add, text, yp+3 xp+60, column(s) guiY+=30 if(withTick) gui, add, checkbox, x30 y%guiY% vwithTick checked,Add tick space? else gui, add, checkbox, x30 y%guiY% vwithTick,Add tick space? guiY+=30 gui, add, text, x30 y%guiY%, Save in file named gui, add, edit, yp-3 xp+120 w100 r1 voutFile, %outFile% guiy+=40 if(closeAfterGen) gui, add, checkbox, x20 y%guiY% vcloseAfterGen checked,Close after creating file? else gui, add, checkbox, x20 y%guiY% vcloseAfterGen,Close after creating file? gui, add, button, x300 w100 h60 y260 default gGo, Let's &go! gui,tab,About IfExist %A_ScriptDir%\%ScriptName%.ico gui, Add , Picture, x15 y35,%A_ScriptDir%\%ScriptName%.ico else IfExist %A_ScriptDir%\%ScriptName%.exe gui, Add , Picture, x15 y35,%A_ScriptDir%\%ScriptName%.exe gui, Font,Bold s10 gui, Add ,Text,x65 y45,%ScriptName% V%ScriptVersion% by jgpaiva`n gui, Font, gui, Font, s10 gui, Add ,Text,x15 y95 w390 ,This is a program that generates random sequences of numbers. gui, Add ,Text,X15 Y120,It was suggested by antonov2754 at DonationCoder.com forums, `nin the following thread: gui, Font,CBlue Underline gui, Add ,Text,X15 Y155 GPost,http://www.donationcoder.com/Forums/bb/index.php?topic=25994 gui, Font gui, Font, s10 gui, Add ,Text, y180 X15,`nPlease visit us at: gui, Font,CBlue Underline s10 gui, Add ,Text, y213 X15 GMainSite,http://www.donationcoder.com/ gui, Font IfExist,Cody.png Gui, Add ,Picture, Y190 X280,Cody.png gui, Add ,Button,y250 x15 gdonateAuthor w116 h30,Donate gui, Font, s9 gui, Add ,Text,y300 x15 h10,If you like this program please make a donation to help further development. gui, show return Post: Run,http://www.donationcoder.com/Forums/bb/index.php?topic=25994 GoSub,GuiCLOSE return MainSite: Run,http://www.donationcoder.com/ GoSub,Guiclose return DonateSite: Run,http://www.donationcoder.com/Donate/index.html GoSub,Guiclose return DonateAuthor: Run,https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=jgpaiva`%40gmail`%2ecom&item_name`=donate`%20to`%20jgpaiva&item_number`=donationcoder`%2ecom&no_shipping=1&cn=Please`%20drop`%20me`%20a`%20line`%20`%3aD&tax`=0¤cy_code=EUR&bn=PP`%2dDonationsBF&charset=UTF`%2d8 GoSub,Guiclose return Go: gui,submit gui,destroy gosub,mainprog return GuiEscape: GuiClose: exitapp ReadIni: IniVersion = 1 IfExist,%A_ScriptName%.ini { IniRead,IniVersion ,%A_ScriptName%.ini,IniSettings,IniVersion,1 IniRead,RandomMin ,%A_ScriptName%.ini,Settings,RandomMin,Error IniRead,RandomMax ,%A_ScriptName%.ini,Settings,RandomMax,Error IniRead,outFile ,%A_ScriptName%.ini,Settings,outFile,Error IniRead,nColumns ,%A_ScriptName%.ini,Settings,nColumns,Error IniRead,withTick ,%A_ScriptName%.ini,Settings,withTick,Error IniRead,closeAfterGen ,%A_ScriptName%.ini,Settings,closeAfterGen,Error If (IniVersion= "Error" OR RandomMin="Error" OR RandomMax="Error" OR outfile="Error" OR ncolumns="Error" OR withTick="Error" OR closeAfterGen="Error") { MsgBox,There was an error reading the .ini file.`nThe script will be restarted, and the ini file will be deleted. FileDelete,%A_ScriptName%.ini Reload sleep 20000 } firstRun:=false } else { firstRun:=true GoSub,WriteIni } return WriteIni: IfNotExist,%A_ScriptName%.ini FileAppend, ,%A_ScriptName%.ini IniWrite,%IniVersion% ,%A_ScriptName%.ini,IniSettings,IniVersion IniWrite,%RandomMin% ,%A_ScriptName%.ini,Settings,RandomMin IniWrite,%RandomMax% ,%A_ScriptName%.ini,Settings,RandomMax IniWrite,%outFile% ,%A_ScriptName%.ini,Settings,outFile IniWrite,%nColumns% ,%A_ScriptName%.ini,Settings,nColumns IniWrite,%withTick% ,%A_ScriptName%.ini,Settings,withTick IniWrite,%closeAfterGen% ,%A_ScriptName%.ini,Settings,closeAfterGen Return