Jump to content

StringReplace


mist3r
 Share

Recommended Posts

Hey,

I've read into the String functions and cant quite figure out how to go about removing everything in a string after a certain character.

Basically so far the script runs pstools and saves the outcome to a text file. Its then read line by line and I retreive the data I need

In the text file it returns "Kernel version: Microsoft Windows XP, Uniprocessor Free".

Im looking to replace all the characters after the ','. Is the only way by doing a StringReplace on the 'Uniprocessor Free' with ' '?

Im not sure what other outcome's there will be if ran on different machines and therefore can't do a StringReplace on strings that might vary from machine to machine.

Any help or advice much appreciated :)

Thanks

Link to comment
Share on other sites

aah, excellent.

Thanks for that. I've been thinking for aaaaages wondering how to go about it. Saved me alot of hassle. Thanks mate.

I don't suppose you've ever had any problems with "GUICtrlCreateEdit" when the Window also has a bg image?

$GUI = GUICreate("ms.Support", 500, 350)
$GuiGraphic = GUICtrlCreatePic("Assets\bgCompInfo.jpg", 0, 0, 500, 350)
GUISetState(@SW_SHOW)

;pstools
RunWait(@ComSpec & ' /c ' & 'tools\psinfo.exe > psinfo.txt', @ScriptDir, @SW_HIDE)
$file = FileOpen(@ScriptDir & "\psinfo.txt", 0)
$cpuTypeLine = FileReadLine($file, 16)
$cpuTypeLine = StringTrimLeft(StringStripWS($cpuTypeLine, 4),16)
$cpuNumberLine = FileReadLine($file, 14)
$cpuNumberLine = StringTrimLeft(StringStripWS($cpuNumberLine, 4),12)
$cpuSpeedLine = FileReadLine($file, 15)
$cpuSpeedLine = StringTrimLeft(StringStripWS($cpuSpeedLine, 4),17)
$memTotalLine = FileReadLine($file, 17)
$memTotalLine = StringTrimLeft(StringStripWS($memTotalLine, 4),17)
$osVersion = FileReadLine($file, 3)
$osVersion = StringTrimLeft(StringStripWS($osVersion, 4),16)
$osVersion = StringLeft($osVersion, StringInStr($osVersion, ',')-1)

;AutoIt Variables
$compName = @ComputerName
$compOSType = @OSTYPE
$compBuild = @OSBuild
$compSP = @OSServicePack


;Forms
$cpuTypeInput = GUICtrlCreateInput("" & $cpuTypeLine , 20, 150, 180, 18)
$cpuNumberInput = GUICtrlCreateEdit("" & $cpuNumberLine , 20, 170, 20, 18)
$cpuSpeedInput = GUICtrlCreateEdit("" & $cpuSpeedLine , 20, 190, 150, 18)
$cpuSpeedInput = GUICtrlCreateEdit("" & $memTotalLine , 20, 210, 80, 18)
$osInfo = GUICtrlCreateEdit(" " & $compName & " " & $osVersion & " " & $compBuild & " " & $compSP, 20, 240, 300, 18)

Basically, when it runs it fetches the variables fine and shows them in editable boxes. But when theres an image used, you can't click in the box's to edit them, yet you can if you press TAB to get to them. Works fine as soon as I take the GUICtrlCreatePic out.

** Actually found that answer.. again i'd been searching for ages and all along it wasnt the editable boxes, rather the bg settings. I used GUICtrlSetState(Default, $GUI_DISABLE) which seems to make it work. ** Thanks again mate

Edited by mist3r
Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...