Jump to content

Search the Community

Showing results for tags 'randomizer'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Announcements and Site News
    • Administration
  • AutoIt v3
    • AutoIt Help and Support
    • AutoIt Technical Discussion
    • AutoIt Example Scripts
  • Scripting and Development
    • Developer General Discussion
    • Language Specific Discussion
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • AutoIt Team
    • Beta
    • MVP
  • AutoIt
    • Automation
    • Databases and web connections
    • Data compression
    • Encryption and hash
    • Games
    • GUI Additions
    • Hardware
    • Information gathering
    • Internet protocol suite
    • Maths
    • Media
    • PDF
    • Security
    • Social Media and other Website API
    • Windows
  • Scripting and Development
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • Forum FAQ
  • AutoIt

Calendars

  • Community Calendar

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Member Title


Location


WWW


Interests

Found 1 result

  1. Hey guys! I tried looking for something like this in the web but could only find broken/impractical scripts or bogus download pages, so I made it and decided to share for future generations. The way it works is it takes all the files in the folder you run the script on, and given a choice it either turns the filename into "randomxx - filename.ext", "randomxx.ext" or you could use it to remove the "randomxx - " tag to undo what you did. Well at least I hope that's the way it works, so be careful and use at your own discretion! #include <File.au3> #include <Array.au3> $farray=_FileListToArray(@ScriptDir) Global $temp[UBound($farray)],$error=1,$count=0,$random[UBound($farray)+1],$ok=0 Do $flag=InputBox("Filename Randomizer","Hello, this script works in the folder you run it on, so be careful!"&@CRLF&@CRLF&"1 to randomize keeping name"&@CRLF&"2 to randomize ditching name"&@CRLF&"3 to remove randomized tag") If @error=1 Then Exit Switch $flag Case $flag = 1 $ok =1 Case $flag = 2 $ok =1 Case $flag = 3 $ok =1 Case Else $exit=MsgBox(5,"error","You must input a valid option") If $exit = 2 Then Exit EndSwitch Until $ok =1 If $flag=1 Or $flag=2 Then ProgressOn("Filename Randomizer","Organizing files...","0%") For $i=1 To UBound($farray)-1 ProgressSet(($i*100)/(UBound($farray)-1),Int(($i*100)/(UBound($farray)-1))&"%") If $farray[$i]=@ScriptName Then Sleep(1) Else $temp[$i]=$farray[$i] Local $crumps[UBound($farray)+1] If $farray[$i]=$i Then $error=1 Else $error=FileMove(@ScriptDir&""&$farray[$i],@ScriptDir&""&$i) EndIf $j=1 $k=$i If $error=0 Then Do $error=0 While $error=0 $crumps[$j]=$k For $index=1 to UBound($farray)-1 If $farray[$index] = $k Then ExitLoop Else If $k = UBound($farray)-1 Then MsgBox(0,"FATAL ERROR","One of the files is in use or something weird happened, sorry but I'm too lazy to work around this one, be more careful next time!") Exit EndIf EndIf Next $k=$index $error=FileMove(@ScriptDir&""&$farray[$k],@ScriptDir&""&$k) If $error=0 Then $j+=1 Else $farray[$k]=$k $j-=1 $k=$crumps[$j] If $j=0 Then FileMove(@ScriptDir&""&$farray[$i],@ScriptDir&""&$i) $farray[$i]=$i ExitLoop EndIf EndIf WEnd Until $j=0 Else $farray[$i]=$i EndIf EndIf Next EndIf $random=_RandomUnique($farray[0],0,$farray[0]-1,1) If $flag=3 Then ProgressOn("Filename Randomizer","Checking and renaming...","0%") For $i=1 To UBound($farray)-1 If $farray[$i]=@ScriptName Then Sleep(1) Else If $flag = 1 Then ProgressSet(($i*100)/(UBound($farray)-1),Int(($i*100)/(UBound($farray)-1))&"%","Renaming") FileMove(@ScriptDir&""&$farray[$i],@ScriptDir&""&"random"&$random[$i]&" - "&$temp[$i]) ElseIf $flag = 2 Then ProgressSet(($i*100)/(UBound($farray)-1),Int(($i*100)/(UBound($farray)-1))&"%","Renaming") $artempex=StringSplit($temp[$i],".") If @error=1 Then FileMove(@ScriptDir&""&$farray[$i],@ScriptDir&""&"random"&$random[$i]) Else $tempext=$artempex[UBound($artempex)-1] FileMove(@ScriptDir&""&$farray[$i],@ScriptDir&""&"random"&$random[$i]&"."&$tempext) EndIf ElseIf $flag = 3 Then ProgressSet(($i*100)/(UBound($farray)-1),Int(($i*100)/(UBound($farray)-1))&"%") $artempex=StringSplit($farray[$i]," - ",1) If Not @error=1 Then $rerror=StringInStr($artempex[1],"random",1) If Not $rerror=0 Then FileMove(@ScriptDir&""&$farray[$i],@ScriptDir&""&StringTrimLeft($farray[$i],3+StringLen($artempex[1]))) $count+=1 EndIf EndIf EndIf Next ProgressOff() If $count=0 And $flag=3 Then MsgBox (0,"","No files had that") Else MsgBox (0,"","Done! Press F5 on your folder") EndIf ; #FUNCTION# ==================================================================================================================== ; Version........: 1.1 - 2011/11/24 ; Name...........: _RandomUnique ; Description ...: Returns an array of unique random numbers ; Syntax.........: _RandomUnique($iCount, $nMin, $nMax, [$iInt = 0, [$nSeed = Default]]) ; Parameters ....: $iCount - The amount of numbers to generate Number between 1 and 10^6-1 ; $nMin - The smallest number to be generated. Number between -2^31 and 2^31-1 ; $nMax - The largest number to be generated. Number between -2^31 and 2^31-1 ; $iInt - [optional] If this is set to 1 then an integer result will be returned. Default is a floating point number. ; $nSeed - [optional] Seed value for random number generation. Number between -2^31 and 2^31-1 ; Return values .: Success - Returns a 1-dimensional array containing only unique numbers ; $Array[0] = count of generated numbers ; $Array[1] = first number ; $Array[2] = second number, etc ; Failure - Returns 0 and sets @error: ; | 1 - $iCount is too small ; | 2 - $iCount is too large ; | 3 - $nMin and $nMax are equal ; | 4 - $nMin is larger than $nMax ; | 5 - $nMin or $nMax exceeds limit ; | 6 - $nSeed exceeds limit ; Author ........: money ; Modified.......: ; Remarks .......: If $iInt is 1 and $iCount exceeds total unique numbers than @extend is set to 1 and item count is adjusted to the ; + maximum numbers that can be returned ; Related .......: ; Link ..........: ; Example .......: Yes ; =============================================================================================================================== Func _RandomUnique($iCount, $nMin, $nMax, $iInt = 0, $nSeed = Default) ; error checking Select ; $iCount is too small Case ($iCount < 1) Return SetError(1, 0, 0) ; $iCount is too large Case ($iCount > 10^6-1) Return SetError(2, 0, 0) ; $nMin and $nMax cannot be equal Case ($nMin = $nMax) Return SetError(3, 0, 0) ; $nMin cannot be larger than $nMax Case ($nMin > $nMax) Return SetError(4, 0, 0) ; $nMin or $nMax exceeds limit Case ( ($nMin < -2^31) Or ($nMax > 2^31-1) ) Return SetError(5, 0, 0) EndSelect ; user specific seed If IsNumber($nSeed) Then ; $nSeed exceeds limit If (($nSeed < -2^31) Or ($nSeed > 2^31-1) ) Then Return SetError(6, 0, 0) SRandom($nSeed) EndIf ; $iCount is equal too or exceeds maximum possible unique values Local $iCountInval = 0 If ($iInt) Then ; positive If ($nMin >= 0) Then If ($iCount > ($nMax-$nMin)+1) Then $iCountInval = 1 ElseIf ($iCount = ($nMax-$nMin)+1) Then $iCountInval = 3 EndIf ; negative to positive Else If ($iCount > ($nMax + Abs($nMin)+1)) Then $iCountInval = 2 ElseIf ($iCount = ($nMax + Abs($nMin)+1)) Then $iCountInval = 3 EndIf EndIf EndIf ; courtesy If ($iInt And $iCount = 1) Then Local $aArray[2] = [1, Random($nMin, $nMax, $iInt)] ; $iCount is too large so we will generate as much we can from $nMin to $nMax values ElseIf $iCountInval Then If $iCountInval = 1 Then $iCount = Int($nMax - $nMin)+1 ElseIf $iCountInval = 2 Then $iCount = Int($nMax + Abs($nMin))+1 EndIf ; $iCount is equal to total unique numbers If $iCountInval = 3 Then $iCountInval = 0 Local $aTmp, $iA, $iNumber = $nMin, $aArray[$iCount + 1] = [$iCount] ; add our numbers sequentially (from $iMin to $iMax) For $i = 1 To $aArray[0] $aArray[$i] = $iNumber $iNumber += 1 Next ; swap every x index value with a random index value For $i = 1 To $aArray[0] $iA = Random($i, $aArray[0], 1) If $i = $iA Then ContinueLoop If $iA = 0 Then $iA = $aArray[0] $aTmp = $aArray[$i] $aArray[$i] = $aArray[$iA] $aArray[$iA] = $aTmp Next Else ; everything else is ok, generate unique numbers Local $nRnd, $iStep = 0, $aArray[$iCount + 1] = [$iCount] While ($iStep <= $iCount-1) $nRnd = Random($nMin, $nMax, $iInt) ; check if the number already exist If IsDeclared($nRnd) <> -1 Then $iStep += 1 $aArray[$iStep] = $nRnd ; store our numbers in a local variable Assign($nRnd, '', 1) EndIf WEnd EndIf Return SetError(0, Number($iCountInval > 0), $aArray) EndFunc Thanks to money for such an efficient snippet!
×
×
  • Create New...