Moderators Melba23 Posted February 20, 2015 Moderators Share Posted February 20, 2015 mikell,The differentiation between Map and Array declaration is already made clear in the 3.3.13.19 Beta Help file:Both Arrays and Maps use similar syntax, so care is required to ensure the variable is of the correct datatype - this is determined by the first declaration line for the variable: Using empty [ ] declares a Map: ---------------------------------------------------------- Local $vVar[] ; A Map ---------------------------------------------------------- Filling the [ ] with a dimension size declares an Array: ---------------------------------------------------------- Local $vVar[3] ; An Array ---------------------------------------------------------- Assigning element values when declaring makes the variable an Array - these three lines are functionally equivalent: ---------------------------------------------------------- Local $vVar[3] = [1, 2, 3] ; An Array Local $vVar[] = [1, 2, 3] ; An Array Local $vVar = [1, 2, 3] ; An Array ----------------------------------------------------------And as I said above, I will now add something to make clear that a scoping keyword is obligatory on declaration. M23 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 columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted February 21, 2015 Moderators Share Posted February 21, 2015 @Melba23, I must admit, 3 different ways to accomplish a "standardized method" is a bit concerning. Especially if you leave one thing out or add one thing to, it's a different data type all together. @OP, If you're unsure, just standardize your own coding. Declare the array with a finite index. Global $gaArray[1][1] Manage your code: <code> <code> <etc> ... I need to access my array ... I am now going to index my array with ReDim <code> <etc> </code> At the point you know your going to need to access the array, then ReDim it, to clear the array, just re-declare it (in the same scope it was created in). It's worked for years before mapping structured arrays were introduced. Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 21, 2015 Moderators Share Posted February 21, 2015 SmOke_N, 3 different ways to accomplish a "standardized method" is a bit concerningNothing to do with me - all I do is write the documentation to try and explain it. M23 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 columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
mikell Posted February 21, 2015 Share Posted February 21, 2015 Melba, I already had a look to the beta helpfile, and said nothing more than I said - considering that like most of the OPs I use the 3.3.12.0 (the recommended one on the main download page) in which Maps don't exist yet Anyway the new helpfile will have to be very explicit to avoid confusion (headaches expected) Local $test[] ;declares a Map Local $test[] = [1, 2, 3] ; An Array $mMap[3] = "string" ; fills a map key $aArray[3] = "string" ; fills an indexed element Link to comment Share on other sites More sharing options...
jchd Posted February 21, 2015 Share Posted February 21, 2015 (edited) All variables in AutoIt must use a scope specifier in their declaration, not only arrays. What is special with arrays is that they must be declared with explicit dimension(s) or with explicit literal initialisation prior to use, irrespective of AutoItSetOption("MustDeclareVars", <setting>). Also empty arrays can use [0] as the first dimension in declaration: Local $a[0] ; an empty 1D array with zero rows Local $b[0][3] ; an empty 2D array with zero rows of 3 columns Local $c[2][0] ; a problematic empty array of 2 rows with zero columns!!! Edited February 21, 2015 by jchd This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt) Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now