Sign in to follow this  
Followers 0
au3scr

string count

10 posts in this topic

How to count how many symbols are in string?

@UserName&"@"&@ComputerName&"~#"

and how to add different colors for same string

like this:

rain@RAIN-46F96242E1~#


Share this post


Link to post
Share on other sites



$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

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

but i still didnt understand it

How i must do it

1 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 this

rain@RAIN-46F96242E1~#commands

how i count symbols until "commands"?

I am doing my own command line so i need count symbols

Example #2

To see avaible commands Type: commands

rain@RAIN-46F96242E1~#Diskfree C:\

Volume Label

Total size of 242E1~#Diskfree C:\0 Gb

Free 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 command

shell:

as you see this command dont work correctly beacause of count problems

Edited by au3scr

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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


Share this post


Link to post
Share on other sites

Every time you nest an If...Else, God kills a kitten.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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


Share this post


Link to post
Share on other sites

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

I 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

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0