Jump to content

Recommended Posts

Posted (edited)

Does anyone see anything wrong with the following? I can't figure it out.

$path = "RollupJobs.txt"
        $test = _FileReadToArray($path,$jobs)
      
       For $x=0 to Ubound($jobs) - 1
                    ;------------------------------------------------------------------------------------
        ;       Pulls CE_ID and Instance from TB_Board_Msg output
        ;------------------------------------------------------------------------------------
        $CEID_Instance = StringRegExp($jobs, '([:space]{1,})([:digit]{1,})([:space]{2,})([:digit]{1,}?:)',1) 
        ;----------------------------My attempt at StringRegExp------------------------------
        ;StringRegExp($jobs,'([0-9]{1,2},[ ]{1,}?:) ([0-9]{1,9},[ ]{2,}?:)',1)
        ;------------------------------------------------------------------------------------------
            MsgBox(0,"@error", @error);Keeps giving me a 1
            
            
            If @error = 0 then
            MsgBox(0,"test",$CEID_Instance[0])
            MsgBox(0,"test",$CEID_Instance[1])
            $ce_id[$x] = $CEID_Instance[0] 
            $instance[$x] = $CEID_Instance[1]
            EndIf
            
        Next
        _ArrayDisplay($ce_id, "CE_IDs")
        _ArrayDisplay($instance, "Instances")

The contents of rollupjobs.txt look similar to:

CE_ID Instances of CE_ID

---------- ------------------

14001 16

19604 2

12505 2

12007 7

12108 2

20009 2

19633 4

18734 9

12893 11

12685 9

13596 4

CE_ID Instances of CE_ID

---------- ------------------

11564 2

18985 4

11435 20

18515 9

15465 9

18645 9

18646 9

14685 9

15632 9

15641 9

15615 9

Thanks for the help!

Edited by Kovitt
Posted (edited)

For one, you're not sending an element of the array, but the whole array to StringRegExp. Second, your MsgBox is reseting the @error flag. Anyway, try this:

Dim $jobs
$path = "RollupJobs.txt"
$test = _FileReadToArray($path,$jobs)
$size = UBound($jobs) - 1
Dim  $ce_id[$size][2]
$count = 0

For $x=1 to $size
    $CEID_Instance = StringRegExp($jobs[$x], '(\d+)\s(\d+)',3)
      
    If @error = 0 then
        $ce_id[$count][0] = $CEID_Instance[0]
        $ce_id[$count][1] = $CEID_Instance[1]
        $count += 1
    EndIf
   
Next
ReDim $ce_id[$count][2]
_ArrayDisplay($ce_id, "CE_IDs")
Edited by zorphnog
Posted (edited)

For one, you're not sending an element of the array, but the whole array to StringRegExp. Second, your MsgBox is reseting the @error flag. Anyway, try this:

Dim $jobs
$path = "RollupJobs.txt"
$test = _FileReadToArray($path,$jobs)
$size = UBound($jobs) - 1
Dim  $ce_id[$size][2]
$count = 0

For $x=1 to $size
    $CEID_Instance = StringRegExp($jobs[$x], '(\d+)\s(\d+)',3)
      
    If @error = 0 then
        $ce_id[$count][0] = $CEID_Instance[0]
        $ce_id[$count][1] = $CEID_Instance[1]
        $count += 1
    EndIf
   
Next
ReDim $ce_id[$count][2]
_ArrayDisplay($ce_id, "CE_IDs")
Wow, looks like it will do the trick.. Just one thing.

I put this in my code and its saying that:

CODE

C:\Documents and Settings\******\My Documents\scripts\Job_Watch\Job_Watch.au3 (70) : ==> Array variable subscript badly formatted.:

ReDim $ce_id[$count][2]

ReDim $ce_id[^ ERROR

Do you by any chance know why this is?

Thanks sooo much for helping me!! I think you have helped in everysingle one of my posts!

Edit: Due to Typos...

Edited by Kovitt
Posted

You need a condition in case Count still equals zero.

If $count Then
    ReDim $ce_id[$count][2]
    _ArrayDisplay($ce_id, "CE_IDs")
Else
    MsgBox(0, "CE_IDs", "No Matches found")
EndIf

I would do the same for $size as well.

[font="Tahoma"]"Tougher than the toughies and smarter than the smarties"[/font]

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
  • Recently Browsing   0 members

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