au3scr Posted March 10, 2008 Share Posted March 10, 2008 How to count how many symbols are in string?@UserName&"@"&@ComputerName&"~#"and how to add different colors for same stringlike this:rain@RAIN-46F96242E1~# Link to comment Share on other sites More sharing options...
Zedna Posted March 10, 2008 Share Posted March 10, 2008 make more labels beside each other and use: GUICtrlCreateLabel GUICtrlSetColor Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
weaponx Posted March 10, 2008 Share Posted March 10, 2008 $string = "AABBCC!@#$%^&*()IIJJKK" $count = CountSymbols($string) MsgBox(0,"",$count & " symbols in string: " & $string) Func CountSymbols($sString) $aResult = StringRegExp($sString,"[^[:alnum:]]",3) Return Ubound($aResult) EndFunc Link to comment Share on other sites More sharing options...
au3scr Posted March 10, 2008 Author Share Posted March 10, 2008 (edited) but i still didnt understand itHow i must do it1 st i have $CommandInput = GUICtrlCreateEdit ("", 0, 0, 497, 293, BitOR ($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN, $WS_VSCROLL, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX))GUICtrlSetData (-1, "To see avaible commands Type: commands" & @CRLF & @UserName&"@"&@ComputerName&"~#")and then i want type commands after @UserName&"@"&@ComputerName&"~#It will look like thisrain@RAIN-46F96242E1~#commandshow i count symbols until "commands"?I am doing my own command line so i need count symbolsExample #2To see avaible commands Type: commandsrain@RAIN-46F96242E1~#Diskfree C:\Volume Label Total size of 242E1~#Diskfree C:\0 GbFree space on 242E1~#Diskfree C:\0Gb (-1.#IND %)Disk 242E1~#Diskfree C:\ S\N Drive 242E1~#Diskfree C:\ File System Drive 242E1~#Diskfree C:\ used 0Gb (-1.#IND %)shell:'AIN-46F96242E1~Diskfree C:\'is not a valid commandshell:as you see this command dont work correctly beacause of count problems Edited March 10, 2008 by au3scr Link to comment Share on other sites More sharing options...
Xenobiologist Posted March 11, 2008 Share Posted March 11, 2008 Hi, what is your delimiter? Is it ~# ? Then do a StrinLen(StrinLeft(start tilll found result of StrinInStr(.. delimiter) Mega Scripts & functions Organize Includes Let Scite organize the include files Yahtzee The game "Yahtzee" (Kniffel, DiceLion) LoginWrapper Secure scripts by adding a query (authentication) _RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...) Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc. MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times Link to comment Share on other sites More sharing options...
au3scr Posted March 11, 2008 Author Share Posted March 11, 2008 here is my terminal, . And this count is needed tor this. And here is other problems.It says invalid command for some commands. Like for diskfree C: i need help with this pelease [autoit]#include <GUIConstants.au3> #include <GUIEdit.au3> #include <misc.au3> #include <GUIConstants.au3> #include <GUIEdit.au3> #include <string.au3> HotKeySet ("^{NUMPADADD}", "IncreaseFont") HotKeySet ("^{NUMPADSUB}", "DecreaseFont") HotKeySet ("{f11}", "fullscreen") HotKeySet ("{enter}","read_func") HotKeySet ("{tab}","lastcmd") global $cmd = "" ;~ HotKeySet ("^{mousewheelup}", "IncreaseFont") ;~ HotKeySet ("^{Mousewheeldown}", "DecreaseFont") $line = 1 $FontSize = 12 $Form1 = GUICreate ("Terminal", 499, 294, 201, 116, BitOr($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX)) $fsize = 10 $CommandInput = GUICtrlCreateEdit ("", 0, 0, 497, 293, BitOR ($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN, $WS_VSCROLL, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX)) GUICtrlSetData (-1, "To see avaible commands Type: commands" & @CRLF &@UserName&"@"&@ComputerName&"~#") GUICtrlSetFont (-1, $fsize, 500, 0, "Terminal") GUICtrlSetColor (-1, 0xFFFFFF) GUICtrlSetBkColor (-1, 0x000000) GuiCtrlCreateTabItem("") GUISetState() While 1 $msg = GUIGetMsg () Switch $msg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func read_func () $line = _GUICtrlEdit_GetLineCount ($CommandInput) - 1 $Input=_GUICtrlEdit_GetLine($CommandInput,$line) ;~ $inputgetcount = _GUICtrlEdit_AppendText($Input,& @UserName&"@"&@ComputerName&"~#) $command = StringTrimLeft ($Input,6) $Say = StringInStr ($command, "say") $Exit = StringInStr ($command, "exit") $sysinfo = StringInStr ($command, "sys") $ipconfig = StringInStr ($command, "ipconfig") $ping = StringInStr ($command, "ping") $run = StringInStr ($command, "run") $play = StringInStr ($command, "play") $kill = StringInStr ($command, "kill") $delfile = StringInStr ($command, "delfile") $soundvol = StringInStr ($command, "soundvol") $diskfree = StringInStr ($command, "diskfree") $tcmd = StringInStr ($command, "tcmd") $transparent = StringInStr ($command, "transparent") $untrans = StringInStr ($command, "untrans") $aptgetupdate = StringInStr ($command, "aptgetupdate") $FileCopy= StringInStr ($command, "filecopy") $dirCopy= StringInStr ($command, "dircopy") $filemove= StringInStr ($command, "filemove") $commands= StringInStr ($command, "commands") $attribget= StringInStr ($command, "attribget") $attribset= StringInStr ($command, "attribset") $winminimizeall= StringInStr ($command, "winminimizeall") $cmd = $command If $Say Then HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 10) Send (@CRLF & $string & @CRLF & @UserName&"@"&@ComputerName&"~#") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") Else If $Exit Then Exit Else If $sysinfo Then sys() ;HERE'S THE FIX======== HotKeySet ("{enter}") Send (@CRLF & "shell:") $line = $line + 30 HotKeySet ("{enter}", "read_func") ;========================== Else If $commands Then HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 15) GuiCtrlSetData($CommandInput,"") $Text=FileRead(@ScriptDir & "\help.txt") ClipPut($Text) Send("^v") HotKeySet ("{enter}") Send (@CRLF & "shell:") $line = $line + 30 HotKeySet ("{enter}", "read_func") ;========================== Else If $winminimizeall Then WinMinimizeAll() WinWaitActive("Terminal") HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 21) Send (@CRLF & "all windows minimized" & @CRLF & "shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") Else If $attribget Then $string = StringTrimLeft ($Input, 16) $fileattrib = FileGetAttrib ($string) HotKeySet ("{enter}") ClipPut (@CRLF & "File has following attributes:" & $fileattrib & @CRLF) Send ("^v{enter}") HotKeySet ("{enter}", "read_func") ;HERE'S THE FIX======== HotKeySet ("{enter}") Send (@CRLF & "shell:") $line = $line + 30 HotKeySet ("{enter}", "read_func") ;========================== Else If $diskfree Then df() HotKeySet ("{enter}") Send (@CRLF & "shell:") $line = $line + 6 HotKeySet ("{enter}", "read_func") EndIf If $kill Then HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 11) Send (@CRLF & "Killing " & $string & "...") $PID = ProcessExists ($string & ".exe") If $PID Then ProcessClose ($PID & ".exe") Send (@CRLF & "Shell:") $line = $line + 4 Else Send (@CRLF & "FATAL ERROR: could not find progress" & "..." & @CRLF & "Shell:") $line = $line + 6 EndIf HotKeySet ("{enter}", "read_func") Else If $tcmd Then HotKeySet ("{enter}") WinSetTrans ("Terminal", "", 128) Send (@CRLF & "Shell:") $line = $line + 4 HotKeySet ("{enter}", "read_func") Else If $transparent Then HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 18) Send (@CRLF & "transparent " & $string & @CRLF & "Shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") WinSetTrans ($string, "", 128) If @error Then HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 10) Send (@CRLF & "FATAL ERROR: could not find external window title" & "..." & @CRLF & "Shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") EndIf Else If $untrans Then HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 14) Send (@CRLF & "untransparent " & $string & @CRLF & "Shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") WinSetTrans ($string, "", 255) If @error Then HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 10) Send (@CRLF & "FATAL ERROR: could not find external window title" & "..." & @CRLF & "Shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") EndIf Else If $run Then HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 10) Send (@CRLF & "running " & $string & "..." & @CRLF & "Shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") Run ($string) If @error Then HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 10) Send (@CRLF & "FATAL ERROR: could not find external program" & "..." & @CRLF & "Shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") EndIf Else If $aptgetupdate Then Run(@ScriptDir&"\update.exe") Exit Else If $play Then HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 11) Send (@CRLF & "running " & $string & "..." & @CRLF & "Shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") SoundPlay ($string) If @error Then HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 10) Send (@CRLF & "FATAL ERROR: could not find external program" & "..." & @CRLF & "Shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") EndIf Else If $delfile Then HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 11) Send (@CRLF & "Deleting" & $string & "..." & @CRLF & "Shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") FileDelete ($string) If @error Then HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 10) Send (@CRLF & "FATAL ERROR: could not delete file" & "..." & @CRLF & "Shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") EndIf Else If $soundvol Then HotKeySet ("{enter}") $string = StringTrimLeft ($Input, 15) SoundSetWaveVolume ($string) Send (@CRLF & "Volume has been set to : " & $string & "%" & @CRLF & "shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") Else If $ipconfig Then HotKeySet ("{enter}") Send (@CRLF & "Your IP address is :" & @IPAddress1 & @CRLF & "shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") Else ;~ COPY If $filecopy Then $Comm=StringSplit($Input,"+") MsgBox(0,"",$Comm[0]) If $Comm[0]=3 Then HotKeySet ("{enter}") Send (@CRLF & "Copying :" & $Comm[2]&" to: "&$Comm[3] & @CRLF & "shell:") FileCopy($Comm[2],$Comm[3]) $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") Else HotKeySet ("{enter}") Send (@CRLF & "Incorrect number of parameters in function call"& @CRLF & "shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") EndIf ;~ COPY#2 Else If $attribset Then $Comm=StringSplit($Input,"+") MsgBox(0,"",$Comm[0]) If $Comm[0]=3 Then HotKeySet ("{enter}") Send (@CRLF & "Copying :" & $Comm[2]&" to: "&$Comm[3] & @CRLF & "shell:") FileSetAttrib($Comm[2],$Comm[3]) $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") Else HotKeySet ("{enter}") Send (@CRLF & "Incorrect number of parameters in function call"& @CRLF & "shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") EndIf Else If $dircopy Then $Comm=StringSplit($Input,"+") MsgBox(0,"",$Comm[0]) If $Comm[0]=3 Then HotKeySet ("{enter}") Send (@CRLF & "Copying :" & $Comm[2]&" to: "&$Comm[3] & @CRLF & "shell:") DirCopy($Comm[2],$Comm[3]) $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") Else HotKeySet ("{enter}") Send (@CRLF & "Incorrect number of parameters in function call"& @CRLF & "shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") EndIf Else If $filemove Then $Comm=StringSplit($Input,"+") MsgBox(0,"",$Comm[0]) If $Comm[0]=3 Then HotKeySet ("{enter}") Send (@CRLF & "Copying :" & $Comm[2]&" to: "&$Comm[3] & @CRLF & "shell:") FileMove($Comm[2],$Comm[3]) $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") Else HotKeySet ("{enter}") Send (@CRLF & "Incorrect number of parameters in function call"& @CRLF & "shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") EndIf ;~ END COPY Else HotKeySet ("{enter}") Send (@CRLF & "'" & $command & "'" & "is not a valid command" & @CRLF & "shell:") $line = $line + 4 Sleep (100) HotKeySet ("{enter}", "read_func") EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndIf EndFunc ;==>read_func Func sys () HotKeySet ("{enter}") $VOL = DriveGetLabel ("C:\") $SERIAL = DriveGetSerial ("C:\") $TOTAL = DriveSpaceTotal ("C:\") $FREE = DriveSpaceFree ("C:\") $FS = DriveGetFileSystem ("C:\") ClipPut (@CRLF & "monitor:") Send ("^v{enter}") ClipPut ("Ekraanilaius: " & @DesktopWidth) Send ("^v{enter}") ClipPut ("Ekraanik Link to comment Share on other sites More sharing options...
weaponx Posted March 11, 2008 Share Posted March 11, 2008 Every time you nest an If...Else, God kills a kitten. Link to comment Share on other sites More sharing options...
Xenobiologist Posted March 11, 2008 Share Posted March 11, 2008 Cant you break your prob down to an easy example so that we can test it? Scripts & functions Organize Includes Let Scite organize the include files Yahtzee The game "Yahtzee" (Kniffel, DiceLion) LoginWrapper Secure scripts by adding a query (authentication) _RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...) Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc. MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times Link to comment Share on other sites More sharing options...
au3scr Posted March 11, 2008 Author Share Posted March 11, 2008 What mean "Cant you break your prob down to an easy example" Can you tell it with some other words? ----- Sorry for my bad english Link to comment Share on other sites More sharing options...
Xenobiologist Posted March 11, 2008 Share Posted March 11, 2008 What mean "Cant you break your prob down to an easy example"Can you tell it with some other words?-----Sorry for my bad englishI mean, can you show your problem with an easy example. Then it is possible to understand and test it on my own.Mega Scripts & functions Organize Includes Let Scite organize the include files Yahtzee The game "Yahtzee" (Kniffel, DiceLion) LoginWrapper Secure scripts by adding a query (authentication) _RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...) Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc. MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times Link to comment Share on other sites More sharing options...
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