Sign in to follow this  
Followers 0
c0re

Splitting on spaces using StringSplit

5 posts in this topic

Hi everyone,

2 things -

Question #1

Is there a way to redirect output from a program to an array instead of a file then reading the file into an array?

If I use a line like this:

Dim $array
$array = RunWait(@ComSpec & " /c " & 'c:\temp\check\psexec.exe \\' & $psiservers[$x] & ' -s -c process.exe -c |findstr -i powersi', 'c:\temp\check', @SW_HIDE)oÝ÷ Øw«z+ìZ^¡ûazËkxßÙ­¯(§Ú,¦X­¶¬¥§²­¡øì^ï^´ßÍ5óý=ÿm4ëm6×mÁ« ¢)à¶h¢a® Mú²b¶·¦¢ø§©e¶rzW¦z{+a²¶§X¤y«­¢+Ù½ÈÀÌØíÈôÄѼÀÌØíÍÁ±¥ÑlÁt(%ÀÌØíÍÁ±¥ÑlÀÌØíÉtôÅÕ½ÐìÅÕ½ÐìQ¡¸(}ÉÉå±Ñ ÀÌØíÍÁ±¥Ð°ÀÌØíȤ(¹%)9áÐ

This bombed with some "Array variable has incorrect number of subscripts or subscript dimension range exceeded" errors so then I tried using UBound($split)-1 instead of $split[0] but got the same errors.

I figured I must be doing something wrong as I'm sure many of you do this all the time; so here I am :).

Any help offered is appreciated.

Thanks.

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

1. look at StdoutRead

2. you already have

$split = StringSplit("7160 3 8 0 18/09/2006 20:21:20"," ")
For $x = 1 To $split[0]
    MsgBox(0,$x,$split[$x])
Next
Edited by gafrost

SciTE for AutoItDirections for Submitting Standard UDFs

 

Don't argue with an idiot; people watching may not be able to tell the difference.

 

Share this post


Link to post
Share on other sites

1. Thanks for the StdoutRead tip, I'm checking into that.

2. When I pasted in the line I was splitting to the forum post earlier it cut out all the reoccurring spaces for some reason. So, while StringSplit may remove some of the spaces it does not remove them all. I still end up with many spaces in $split. Here is an example of what the array looks like after I do the StringSplit:

[0]=30

[1]=

[2]=

[3]=

[4]=

[5]=

[6]=

[7]= gen.exe

[8]=

[9]= 7160

[10]=

...empty elements to 16

[16] = 3

...empty elements to 24

[24] = 8

[25] =

[26] =

[27] = 0

[28] =

[29] = 18/09/2006

[30] = 20:21:20

The problem is these empty elements change on me from iteration to iteration, [30] may not contain the time but instead will contain an empty element or no element at all. :)

Share this post


Link to post
Share on other sites

try:

$split = StringSplit(StringStripWS("7160       3           8 0 18/09/2006 20:21:20",4)," ")
For $x = 1 To $split[0]
    MsgBox(0,$x,$split[$x])
Next

Visit the SciTE4AutoIt3 Download page for the latest versions        Beta files                                                          Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

try:

$split = StringSplit(StringStripWS("7160       3           8 0 18/09/2006 20:21:20",4)," ")
For $x = 1 To $split[0]
    MsgBox(0,$x,$split[$x])
Next

That works! :)

Shame on me for not spotting this in the help file, I totally mised those 2 StringStip functions. Thanks for the excellent help.

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