Jump to content

Question on Arrays (beginner)


Recommended Posts

Hi I have a question regarding arrays as I'm still trying to grasp the concept.

Over at http://www.autoitscript.com/wiki/Arrays, it states you have to do a -1 to get the actual index (since computer counts starting at 0)

So its example:

Local $arr[3] = ["element 1", "element 2", "element 3"]
 
For $i = 0 to 3 - 1 ; We have an array with three elements but the last index is two.
ConsoleWrite($arr[$i] & @LF)
Next

My question is, why wouldn't you just change "For $i = 0 to 3 -1" to "For $i = 0 to 2"?

 

 

Link to comment
Share on other sites

My question is, why wouldn't you just change "For $i = 0 to 3 -1" to "For $i = 0 to 2"?

 

Well you could if you wanted. With larger arrays though, it's easier to use UBound -1, or just UBound if that's the case.

Edited by somdcomputerguy

- Bruce /*somdcomputerguy */  If you change the way you look at things, the things you look at change.

Link to comment
Share on other sites

  • Moderators

jgq85,

If you already know the size of the array, then of course you can use the actual value for the top index:

Local $arr[3] = ["element 1", "element 2", "element 3"]
For $i = 0 to 2                                            ; You can use the actual value here
    ConsoleWrite($arr[$i] & @LF)
Next
But if you have an array of unknown size (after using FileReadToArray for example) you need to do as somdcomputerguy suggested - use UBound and subtract 1 to get the top index:

Local $aLines = FileReadToArray("File_Path")
For $i = 0 to UBound($aLines) - 1                          ; But here you need to calculate the top index
    ConsoleWrite($arr[$i] & @LF)
Next
Just so you know, in the new Beta you get the number of lines read returned in @extended so you could use that instead. ;)

M23

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:

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

 

Link to comment
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
 Share

  • Recently Browsing   0 members

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