tuffgong Posted January 13, 2017 Posted January 13, 2017 I have a text file with many lines that needs to be converted to a new format. Each individual line is separated by numerous commas. I want to import the text into an array then use StringSplit and assign the resulting values to variables. This code results in an error: "Array variable has incorrect number of subscript or subscript dimensions range exceeded." While 1 Global $String = String($aArray[$count]) Global $aDelim = StringSplit($String, ",") ;_ArrayDisplay ($aDelim) Global $date = $aDelim[1] Global $No = $aDelim[2] Global $A = $aDelim[7] Global $B = $aDelim[4] So, I tried something similar on a smaller scale. The only difference that I can see is that the test code (below - which works as expected) does not read the original array in a loop. I can see no difference: #include<array.au3> #include<MsgBoxConstants.au3> #include<file.au3> Global $aArray Global $source = @ScriptDir & "\test.txt" _FileReadToArray ($source, $aArray) Global $String = String($aArray[3]) Global $aDelim = StringSplit($String, ",") ;_ArrayDisplay ($aDelim) Global $one = $aDelim[1] Global $two = $aDelim[2] Global $seven = $aDelim[7] Global $four = $aDelim[4] MsgBox(" "," ",$seven) In both cases the _ArrayDisplay shows what I would expect but the code on top gets an error and the one below does not. I would appreciate any insight.
water Posted January 13, 2017 Posted January 13, 2017 If you set the delimiter parameter in _FileReadToArray then the function does it for you and returns a 2D array: _FileReadToArray($source, $aArray, Default, ",") My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
tuffgong Posted January 13, 2017 Author Posted January 13, 2017 Thanks for the response. I think this is exactly what I need. However, I am inexperienced with 2d Arrays in AutoIT. My experiments with your solution have not been successful yet. Could you be a little more specific about the syntax? Should the above statement work as written? If so, how do I display the Array to check? For example, the below code runs with no errors but it never displays my Array: _FileReadtoArray($source, $aArray, Default, ",") _ArrayDisplay($aArray, "", Default, 1) I have tried adding $FRTA_ENTIRSPLIT with the same results.
Moderators Melba23 Posted January 13, 2017 Moderators Posted January 13, 2017 tuffgong, Splitting the file to an instantly viewable 2D array with _FileReadToArray will only work if all the lines have the same number of delimiters - if this is not the case, then using $FRTA_INTARRAYS will need some further work to get the arrays displayed. Could you post a copy of the file in question so that we can see how best to proceed - PM me a copy if you do not want to post it in open forum. 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
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