Modify

#1569 closed Feature Request (Completed)

_ArraySearch fails returns wrong result

Reported by: david@… Owned by: Jpm
Milestone: 3.3.7.0 Component: AutoIt
Version: Severity: None
Keywords: Cc:

Description

If one has an array with the first element having a 0 value then ArraySearch always returns 0 matching whatever you are looking for as 0.

#include <Array.au3>
Dim $ArrayWorks[2]=["0","String"]
Dim $ArrayFails[2]=[0,"String"]
MsgBox( 0, _ArraySearch( $ArrayWorks, "String" ), _ArraySearch( $ArrayFails, "String" ) )

Attachments (1)

ArraySearchBugRepro.au3 (181 bytes ) - added by david@… on Apr 16, 2010 at 3:22:14 PM.

Download all attachments as: .zip

Change History (6)

comment:1 by anonymous, on Apr 16, 2010 at 3:36:02 PM

I have since found the bug report #1142 which is the exact same which was classified as not a bug because the string is converted to a Number prior to compare which makes the search successful.

I am not sure if the data should be converted prior to comparison as perhaps the string "0" should not equal to the integer 0.

Perhaps if the documentation had some statement indicating that the search string will be converted to match each array's element that would help clarify what is going on.

comment:2 by Jpm, on May 30, 2010 at 9:25:47 AM

Type: BugFeature Request

I prefer to treat it as a request feature and to add a mode that will strictly match if the variable type are the same.

The checking of the variables in AutoIt is kept with this new mode.
I don't like too much "string" = 0 or "" = 0 but that's the way AutoIt is doing comparison priority to numbers ... So I cannot change the default value.

comment:3 by Jpm, on May 30, 2010 at 9:36:21 AM

Milestone: 3.3.7.0
Owner: set to Jpm
Resolution: Completed
Status: newclosed

Added by revision [5854] in version: 3.3.7.0

comment:4 by TicketCleanup, on May 30, 2010 at 10:00:02 AM

Version: 3.3.6.1

Automatic ticket cleanup.

comment:5 by Spiff59, on Aug 17, 2010 at 4:37:37 PM

Isn;t all you'd need to add is this one line near the top of the _ArraySearch() function?
If $vValue == 0 Or $vValue == "" Then $iCase = 1

Modify Ticket

Action
as closed The owner will remain Jpm.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.