Jump to content
Sign in to follow this  

I can't get this Array problems solved...

Recommended Posts


please help me with this:

#include <Array.au3>
#include <File.au3>
Dim $E[500]
Dim $EREZ[500]
Dim $EREZ1[500]
Dim $EREZ2[500]
_FileReadToArray("c:\erez1.txt", $E)
$ttt = UBound($E)
MsgBox(0, "this is ubound", $ttt)
Dim $EREZ1[500]
Dim $EREZ[500]
Dim $EREZ2[500]
_FileReadToArray("c:\erez1.txt", $EREZ)
$E1 = _ArraySearch($EREZ, "Switch Name:", 0, 0, 1, 1)
MsgBox(0, "this is $E1", $E1)
For $b = 0 To 16
    _ArraySwap($EREZ[$E1 + $b], $EREZ1[$b + 1])
For $b = 16 To 24
    If $E1 + 16 + ($b - 5) > $ttt Then ExitLoop
    _ArraySwap($EREZ[$E1 + 16 + ($b - 5)], $EREZ1[$b + 2])
For $b = 24 To 31
    If $E1 + 16 + ($b + 6) > $ttt Then ExitLoop
    _ArraySwap($EREZ[$E1 + 16 + ($b + 6)], $EREZ1[$b + 3])

I am having problems, I need this to run even if the Array dimensions are exceeded. meaning this line not working:

if $E1+16+($b-5) > $ttt then ExitLoop


if $E1 + 16 + ($b + 6) > $ttt Then ExitLoop

Attached file erez1.txt that is being used here.

look at the error on the console, I can't pass by it even if those lines are there in there in the For-Next.

Edited by erezlevi

Share this post

Link to post
Share on other sites

UBound returns the NUMBER of elements, meaning it's always one greater than the last element.

So, your error prevention code should be:

if $E1+16+($b-5) >= $ttt then ExitLoop
if $E1 + 16 + ($b + 6) >= $ttt Then ExitLoop

Roses are FF0000, violets are 0000FF... All my base are belong to you.

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  


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.