Jump to content

Recommended Posts

Posted

It's bugged or I'm doing it wrong.

Consider this example:

#include <Array.au3>
#include <MsgBoxConstants.au3>

Local $aArray[10][10]
For $i = 0 To 9
    For $j = 0 To 9
        $aArray[$i][$j] = $i & "-" & $j
    Next
Next
_ArrayDisplay($aArray, "2D Array")
$start_col = 0
MsgBox($MB_SYSTEMMODAL, "Rows 4-7,  cols 2-5", _ArrayToString($aArray, " :: ", 0, 9, @CRLF, $start_col, $start_col))

It produces the whole array, all cells joined by " :: " and all rows joined by @CRLF. It should produce just the 0-th row.

If you change $start_col to 1 or any other number, it works correctly. Does anyone have any idea what is wrong in my code or the _ArrayToString code in Array.au3?

I would try to figure out what's the problem in the Array.au3, but I don't have time to do it now. If no one figures it out I might give it a try later on.

  • Moderators
Posted (edited)

Quirinus,

I see the bug and I have a fix. I need to test it a bit more but it should be fixed in the next Beta. :)

M23

Edit: And done. :)

Edited by Melba23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

  Reveal hidden contents

 

Posted

Melba,

BTW I'm running the 3.3.12.0 release, is this still present  in the latest beta ?

Func _ArraySort(ByRef $avArray, $iDescending = 0, $iStart = 0, $iEnd = 0, $iSubItem = 0, $iPivot = 0)
    ; ....
    ; Bounds checking
    If $iEnd = Default Then $iEnd = 0
    If $iEnd < 1 Or $iEnd > $iUBound Or $iEnd = Default Then $iEnd = $iUBound

:D
 

  • Solution
Posted (edited)

Thanks, Melba23! Would be cool if you posted the fix too next time, but no problem, it's not a hard one to find, and I guess the next release isn't far off. :)

I took a look at Array.au3 and found the issue, if anyone needs a quick fix before the beta is out. It works if I remove the line:

If $iEnd_Row = 0 Then $iEnd_Row = $iDim_1

from the start of  _ArrayToString function, and this line:

If $iEnd_Col = 0 Then $iEnd_Col = $iDim_2

under the Case 2. I'm not sure if it messes up something else, but it works to my satisfaction.

I noticed the same problem with _ArrayExtract, so I submitted a ticket here:

http://www.autoitscript.com/trac/autoit/ticket/2824#ticket

Also, the documentation for _ArrayExtract is wrong, as indicated in the ticket.

Edited by Quirinus
Posted
  On 8/5/2014 at 1:48 AM, Quirinus said:

Thanks, Melba23! Would be cool if you posted the fix too next time, but no problem, it's not a hard one to find, and I guess the next release isn't far off. :)

Why? >> '?do=embed' frameborder='0' data-embedContent>>

UDF List:

  Reveal hidden contents

Updated: 22/04/2018

Posted

My post was before that beta build was out and the assumption in the post was correct, as well.

Thanks for developing this awesome program and providing assistance, both are greatly appreciated! :)

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...