Search the Community
Showing results for tags 'list variables'.
-
To everyone, The following script will help you count variable within autoit script file (.au3) and list them to a text file. The output list is similar to the varible windows in autoit debugger. Source of inspiration: List All Variable Names In Script ;Author: Jeffrey Paesch #include <File.au3> #include <StringConstants.au3> local $appkey, $lines, $sVarArr[1] ;set and delete registry $appkey = "hkcu\software\ppsolution.net\variablestrip" RegDelete($appkey) ;get source script file $Source = FileOpenDialog("Choose a script to find Variables in:", @DesktopCommonDir, "Scripts (*.au3)", 3) If @error Then Exit ;create variable list file $oFile= StringTrimRight($Source, 4) & "_VarRename.txt" _FileCreate($oFile) ;Read script file _FileReadToArray($Source, $lines) ;extracting variables from file to registry For $i = 1 To UBound($lines, 1) - 1 If StringLeft($lines[$i], 2) <> ";~" Then $words_splits = StringSplit($lines[$i], " ") For $words In $words_splits $count1 = 1 $count2 = 1 $1e_var = "" $2e_var = "" If StringInStr($words, "$") > 0 Then $words = StringMid($words, StringInStr($words, "$"), StringLen($words) + 1) $words = StringStripWS($words, $STR_STRIPLEADING + $STR_STRIPTRAILING + $STR_STRIPSPACES) $first_letter = StringRight($words, 1) If $first_letter = "," Then $words = StringLeft($words, StringLen($words) - 1) If $first_letter = ")" Then $words = StringLeft($words, StringLen($words) - 1) If StringInStr($words, "[") And StringRight($words, 1) = "]" Then $pos_brack1 = StringInStr($words, "[") $pos_brack2 = StringInStr($words, "]") $char = $pos_brack2 - $pos_brack1 - 1 $1e_var = StringMid($words, 1, $pos_brack1 - 1) $subtext = StringMid($words, $pos_brack1 + 1, $char) If StringInStr($subtext, "$") > 0 Then $2e_var = $subtext EndIf If Not StringInStr($words, "[") And StringRight($words, 1) = "]" Then $1e_var = StringLeft($words, StringLen($words) - 1) if $1e_var = "" then $1e_var = $words if $1e_var = "$""" then exitloop If RegRead($appkey, $1e_var) Then $count1 = RegRead($appkey, $1e_var) $count1 += 1 EndIf RegWrite($appkey, $1e_var, "reg_sz", $count1) If $2e_var <> "" Then if RegRead($appkey, $2e_var) Then $count2 = RegRead($appkey, $2e_var) $count2 += 1 endif RegWrite($appkey, $2e_var, "reg_sz", $count2) EndIf EndIf Next EndIf Next ;count registry $countreg = 1 while 1 $sVar = RegEnumVal($appkey, $countreg) If @error <> 0 Then ExitLoop $countreg += 1 wend ;get registry key and value for $i = 1 to $countreg ReDim $sVarArr [UBound($sVarArr ) + 1] $sVar = RegEnumVal($appkey, $i) If @error <> 0 Then ExitLoop $sVal = RegRead($appkey, $sVar) $sVarArr [$i] = $sVar & " (" & $sVal & ")" next ;sort Array _ArraySort ( $sVarArr) ;write variable to text file for $i = 1 to ubound($sVarArr) - 1 filewrite ($oFile, $sVarArr[ $i] & @crlf) ;consolewrite ($sVarArr[$i] & @crlf) next ;open variable list ShellExecute($oFile) ;_fileprint($oFile) You may comment out the last line to print your list directly to a default printer.
- 1 reply
-
- autoit
- autoit debugger
-
(and 3 more)
Tagged with: