lewisg Posted February 24, 2009 Share Posted February 24, 2009 Can data be embedded in a script that can then be read by the script in order to populate an array? I'm trying to elimitate the use of a text file that would have to be around with the data in it and just have one file to distribute. Similar to the old Basic command of "Data" and "Read". Link to comment Share on other sites More sharing options...
Authenticity Posted February 24, 2009 Share Posted February 24, 2009 FileInstall?, you can also use one giant string var and manipulate it's content similar to IniReadSection or so because I believe it uses the approach of RegEx. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 24, 2009 Moderators Share Posted February 24, 2009 lewisg,As Authenticity has already proposed: use FileInstall to get your data file into @TempDir, then _FileReadToArray to get the data into your script, and then FileDelete the temporary file. I have done it few times and it works well.Or use the #Region...#EndRegion feature in SciTE to hide the data within the script so it does not become too cumbersome to work on. There are then many ways to get the data into an array. If you get the separator characters correctly set up, StringSplit might well do the job for you very efficiently - even for 2D arrays.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...
Malkey Posted February 24, 2009 Share Posted February 24, 2009 Can data be embedded in a script that can then be read by the script in order to populate an array? I'm trying to elimitate the use of a text file that would have to be around with the data in it and just have one file to distribute. Similar to the old Basic command of "Data" and "Read".Here is an old Basic Data - Read example. REM Pipe Diameters Data 100, 150, 225, 300, 375, 450, 525, 600, 675, 750, 825, 900 DIMPD (12):FORP=1 TO 12:READPD (P):NEXTP Here is an example of two ways to embed data into an AutoIt script. A StringSplit() example; and , Examples of defining and filling an array. This will give you something to experiment with. expandcollapse popup#include <Array.au3> Local $aData ; Array from string Local $sData = "100, 150, 225, 300, 375, 450, 525, 600, 675, 750, 825, 900" $aData = StringSplit($sData, ",") _ArrayDisplay($aData) ;====== Define and Fill array examples ========== ; Single dimensional array Local $aData[12] = [100, 150, 225, 300, 375, 450, 525, 600, 675, 750, 825, 900] _ArrayDisplay($aData) ; 2 dimensional array Local $array3x4[3][4] = [["[0][0]", "[0][1]", "[0][2]", StringFormat("[%d][%d]", 0, 3)], _ ['[1][0]', '[1][1]', '[1][2]', '[' & 1 & '][' & 3 & ']'], _ ['[2][0]', '[2][1]', '[2][2]', '[2][3]']] _ArrayDisplay($array3x4) ; 3 dimensional array Local $array2x3x4[2][3][4] = [[['[0][0][0]', '[0][0][1]', "[0][0][2]", '[0][0][3]'], _ ['[0][1][0]', '[0][1][1]', '[0][1][2]', '[0][1][3]'], _ ['[0][2][0]', '[0][2][1]', '[0][2][2]', '[0][2][3]']], _ [['[1][0][0]', "[1][0][1]", '[1][0][2]', '[1][0][3]'], _ ['[1][1][0]', '[1][1][1]', '[1][1][2]', '[1][1][3]'], _ ['[1][2][0]', '[1][2][1]', "[1][2][2]", '[1][2][3]']]] Local $sRes = "Contents of $array2x3x4 array" & @CRLF & @CRLF For $x = 0 To 1 For $y = 0 To 2 For $z = 0 To 3 $sRes &= "$array2x3x4[" & $x & "][" & $y & "][" & $z & "] = " & _ $array2x3x4[$x][$y][$z] & @CRLF Next Next Next MsgBox(0, "Display $array2x3x4", $sRes)<array.au3> Link to comment Share on other sites More sharing options...
lewisg Posted February 25, 2009 Author Share Posted February 25, 2009 Thanks to all replyers. I went the FileInstall - @TempDir - FileDelete route. Seemed the simplest, quickest, and easiest......and IT WORKED!! 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