frew Posted April 25, 2009 Posted April 25, 2009 Hello, I'm not sure where to start with learning how to use arrays. I think they are important, but I don't know the best way to start using them, or how to best go about learning how to use them in AutoIt. So if anybody would point me to a tutorial, or some resource on beginning with arrays, I'd be most appreciative. I mostly want to put many lines of text into an array (ie each line containing a single MouseClick), and then, in all kinds of diverse ways, rearrange the order in which the MouseClicks occur. I thought arrays might be helpful. Thanks for any ideas, and for any array practices I can work on. frew
Andreik Posted April 25, 2009 Posted April 25, 2009 You can start from here. It's a very good tutorial.
frew Posted April 25, 2009 Author Posted April 25, 2009 Thanks for the link Andreik. I've gone through that great tutorial by BrettF. What wonderful work. It touches upon arrays, but now I'm looking for not only how to create them, but for ideas on how to use them. Like reading files into them, how to access the values in them, tips and tricks for how to really utilize arrays in all kinds of ways. I sort of want to go more in depth with arrays in order to feel that I can use them effectively when I need to. Thanks for any other ideas. frew
Qousio Posted April 25, 2009 Posted April 25, 2009 Thanks for the link Andreik.I've gone through that great tutorial by BrettF. What wonderful work.It touches upon arrays, but now I'm looking for not only how to create them, but for ideas on how to use them.Like reading files into them, how to access the values in them, tips and tricks for how to really utilize arrays in all kinds of ways.I sort of want to go more in depth with arrays in order to feel that I can use them effectively when I need to.Thanks for any other ideas.frewAn array is basically a matrix of information. It has rows and collumns, every element has some information, it could be text or a number or something else.If you want to experiment with arrays start with the Array UDF and check some stuff like filereadfromarray and filewritefromarray.
Andreik Posted April 25, 2009 Posted April 25, 2009 A simple example to use arrays: Read a file in one array, display this array and then get some random lines from array. #include <File.au3> #include <Array.au3> $SELECT = FileOpenDialog("SELECT",@ScriptDir,"Text (*.txt)",1) Dim $ARRAY _FileReadToArray($SELECT,$ARRAY) _ArrayDisplay($ARRAY) For $I = 1 To 5 $RANDOM = Random(1,$ARRAY[0],1) MsgBox(0,"Line#" & $RANDOM,$ARRAY[$RANDOM]) Next
frew Posted April 25, 2009 Author Posted April 25, 2009 Okay thanks Qousio. I got this to work: #Include <File.au3> #Include <Array.au3> Dim $aArray _FileReadToArray("C:\array_read_from_this_1.txt", $aArray) _ArrayDisplay($aArray) _FileWriteFromArray("C:\array_write_to_this_1.txt", $aArray) That puts the lines form array_read_from_this_1.txt into an array, and then puts the array into the array_write_to_this_1.txt. Now I'm wondering how to do stuff with what's now in the array. If I have hundreds of lines of text in the array_read_from_this_1.txt, and it's all put into an array, I don't know how I'd ever remember what's what inside the array. So I cannot really use the individual elements of the array like I'm used to using individual variables in a script. Thanks for any other ideas for me to work with. frew
frew Posted April 25, 2009 Author Posted April 25, 2009 Read a file in one array, display this array and then get some random lines from array.Oh that's a nice idea. Thank so much Andreik.I'll work with that a bit and see what you did with this.This gives me some techniques to work with.Thanks again!frew
frew Posted April 25, 2009 Author Posted April 25, 2009 Just wondering now... I get some extra lines of text that show up in the file that is read from the array...any idea what these extra lines are? File that is read into the array: oneone1 twotwo2 threethree3 fourfour4 fivefive5 After some randomization, File that is written from the array: (What's the extra '5' that shows up?) twotwo2 fourfour4 threethree3 fivefive5 5 oneone1 Thanks for any ideas, frew
Valuater Posted April 25, 2009 Posted April 25, 2009 When the file is read to an array, The $array[0] holds the number of items in the array. You have five items in the array and when the "write from array" uses the random numbers "0" is one of them. In other words $array[0] = 5 8)
frew Posted April 25, 2009 Author Posted April 25, 2009 when the "write from array" uses the random numbers "0" is one of them. In other words $array[0] = 5 Oh, okay, I see. Thank you very much Valuater. Just curious, is there any way to make the $array[0] not show up in the "write from array" results in the text file that is being written to? That $array[0] kind of gets in the way of the results I want in the text files. I could just edit it out, but with lots of text files like this. with lots of experimenting, etc., it would be nice to just have the $array[0] not show up in the text files that are written to...so I wouldn't have to do all that extra text editing as I go along with tons of testing. Thanks for any ideas, frew
PsaltyDS Posted April 27, 2009 Posted April 27, 2009 Oh, okay, I see. Thank you very much Valuater. Just curious, is there any way to make the $array[0] not show up in the "write from array" results in the text file that is being written to? That $array[0] kind of gets in the way of the results I want in the text files. I could just edit it out, but with lots of text files like this. with lots of experimenting, etc., it would be nice to just have the $array[0] not show up in the text files that are written to...so I wouldn't have to do all that extra text editing as I go along with tons of testing. Thanks for any ideas, frew You need to get in the habit of looking that kind of thing up in the help file before posting. Look up _FileWriteFromArray() and read what the $i_Base parameter does. Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
frew Posted April 27, 2009 Author Posted April 27, 2009 You need to get in the habit of looking that kind of thing up in the help file before posting. Look up _FileWriteFromArray() and read what the $i_Base parameter does. Your right, I'll do that more. I always go to the helpfile first, but I sometimes miss something, or don't understand what's in the help if it's something I'm just beginning with. Thanks for directing me to the $i_Base parameter. Just wondering, I do this #Include <File.au3> #Include <Array.au3> #Include <File.au3> #Include <Array.au3> Global $aArray _FileReadToArray("C:\array_read_from_this_1.txt", $aArray, 1) _ArrayDisplay($aArray) _FileWriteFromArray("C:\array_write_to_this_1.txt", $aArray, 1) and I get this error message C:\Program Files\AutoIt3\Scripts\Misc\array read write\FileReadToArray_ArrayDisplay_FileWriteFromArray_1.au3(6,61) : ERROR: _FileReadToArray() called with wrong number of args. _FileReadToArray("C:\array_read_from_this_1.txt", $aArray, 1) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ C:\PROGRAM FILES\AUTOIT3\Include\File.au3(192,49) : REF: definition of _FileReadToArray(). Func _FileReadToArray($sFilePath, ByRef $aArray) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ C:\Program Files\AutoIt3\Scripts\Misc\array read write\FileReadToArray_ArrayDisplay_FileWriteFromArray_1.au3 - 1 error(s), 0 warning(s) whereas without the ', 1' added, the script runs fine but starts at [0]. Thanks for any other ideas. I checked the help, but I still may be overlooking something that's there. frew
PsaltyDS Posted April 27, 2009 Posted April 27, 2009 Your right, I'll do that more. I always go to the helpfile first, but I sometimes miss something, or don't understand what's in the help if it's something I'm just beginning with. Thanks for directing me to the $i_Base parameter. Just wondering, I do this #Include <File.au3> #Include <Array.au3> #Include <File.au3> #Include <Array.au3> Global $aArray _FileReadToArray("C:\array_read_from_this_1.txt", $aArray, 1) _ArrayDisplay($aArray) _FileWriteFromArray("C:\array_write_to_this_1.txt", $aArray, 1) and I get this error message C:\Program Files\AutoIt3\Scripts\Misc\array read write\FileReadToArray_ArrayDisplay_FileWriteFromArray_1.au3(6,61) : ERROR: _FileReadToArray() called with wrong number of args. _FileReadToArray("C:\array_read_from_this_1.txt", $aArray, 1) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ C:\PROGRAM FILES\AUTOIT3\Include\File.au3(192,49) : REF: definition of _FileReadToArray(). Func _FileReadToArray($sFilePath, ByRef $aArray) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ C:\Program Files\AutoIt3\Scripts\Misc\array read write\FileReadToArray_ArrayDisplay_FileWriteFromArray_1.au3 - 1 error(s), 0 warning(s) whereas without the ', 1' added, the script runs fine but starts at [0]. Thanks for any other ideas. I checked the help, but I still may be overlooking something that's there. frew OK, you looked up _FileWriteFromArray() and found a new parameter to use. Now, look up _FileReadToArray() and see what the parameters are... Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
frew Posted April 27, 2009 Author Posted April 27, 2009 Now, look up _FileReadToArray() and see what the parameters are...Yep, I should have done that. Okay, now I've got it. Thanks so much for your help PsaltyDS.#Include <File.au3>#Include <Array.au3>Global $aArray_FileReadToArray("C:\array_read_from_this_1.txt", $aArray)_ArrayDisplay($aArray)_FileWriteFromArray("C:\array_write_to_this_1.txt", $aArray, 1)_ArrayDisplay($aArray)frew
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