Sign in to follow this  
Followers 0
bravojohhny

A big problem

3 posts in this topic

Hello, I've got this big problem with this piece of code:

Case $Button3
        $open1 = FileOPen($file1, 0)
        $read1 = FileReadLine($open1)
        $a1= StringSplit($read1, ",")
        $open2 = FileOpen($file2, 0)
        $read2= FileReadLine($open2)
        $a2= StringSplit($read2, ",")
        $i=0
        Do
            $i = $i+1
            _ArraySearch($a1, $a2[$i])
            MsgBox(64, "", "Now searching for: "&$a2[$i])
            If @error Then
                MsgBox(64,"", "Couldn't find "&$a2[$i]&" continue")
            Else 
                MsgBox(64,"","Found: "&$a2[$i]&" - now erasing")
            _ArrayDelete($a1, $a2[$i])
            EndIf
        Until $i = UBound($a2)
        _ArrayDisplay($a1)

The code works but when it finishes the deleting I get this error:

C:\Documents and Settings\Admin\Local Settings\Temp\test.au3 (40) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:

_ArraySearch($a1, $a2[$i])

_ArraySearch($a1, ^ ERROR

>Exit code: 1 Time: 6.034

How can I fix this?

Share this post


Link to post
Share on other sites



bravojohhny,

Your problem lies in this line:

Until $i = UBound($a2)

Remember that AutoIt arrays start at 0, so a 4 element array has the indices 0, 1, 2, 3.

UBound returns the number of elements in the array (4), not the highest index (3) - and yes I agree it should have been called something else when it was introduced into the language. :P

So if you wait until the count reaches the number of elements, you are one over the highest index and when you try to access it, you get an error. ;)

Try using

Until $i = UBound($a2) - 1

All clear? :blink:

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

^Hei thanks, you're a life saver!

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