LetsAuto Posted December 18, 2012 Posted December 18, 2012 #include <Array.au3> ;;automation to run functions from files $maxFun = 35 Global $v[1] For $l = 1 To $maxFun Step 1 _ArrayAdd ($v[$maxFun] = FileReadLine("C:\IanLogTest\functionLog.log", $l)) Next MsgBox("", "count", $v[$maxFun]) so that is my whole script... what i want it to do is have $maxFun be a text document and the maximum number of lines in the text doc is 35 at any given time.. and then add each line as an element to my array ($v[]). i just dont know how to create a blank array without using 35 ["",""...] as "blank" elements... is there an easy way to do this with a FOR loop? i feel that there is.. or should i just write out 35 variables and then $var1 = fileReadLine...... over and over.? Thanks
Moderators Melba23 Posted December 18, 2012 Moderators Posted December 18, 2012 LetsAuto,Look at FileReadToArray in the Help file = it puts each line of a file into an array element for you. And also look at ReDim to see how to resize an array if you ever need to. 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
BrewManNH Posted December 18, 2012 Posted December 18, 2012 If you just declare the array as "Global $v[36]" the array will be empty already. BTW, you need to declare it to 36 because you're starting the For loop at 1 and running it 35 times. Here's one way of doing it. #include <Array.au3> ;;automation to run functions from files Global $maxFun = 35 Global $v[36] Global $hFile = FileOpen("C:IanLogTestfunctionLog.log") ; use a handle when using FileReadLine, it's much faster For $l = 1 To $maxFun ; The step isn't needed if you're only incrementing by one every time. $v[$l] = FileReadLine($hFile) Next MsgBox("", "count", $v[$maxFun]) FileClose($hFile) Or do it this way without the loop. #include <File.au3> ;;automation to run functions from files Global $v[1] _FileReadToArray("C:IanLogTestfunctionLog.log", $v) MsgBox("", "count", $v[$maxFun]) If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
LetsAuto Posted December 18, 2012 Author Posted December 18, 2012 Awesome, thanks a lot! i had not found FileReadToArray because i just used FileReadLine without looking through the help files. ill post again if i run into issues
Moderators Melba23 Posted December 18, 2012 Moderators Posted December 18, 2012 LetsAuto,without looking through the help filesAlways a good idea to look there. 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
LetsAuto Posted December 18, 2012 Author Posted December 18, 2012 @Melba23, agreed i will make sure to scan through that next time. @BrewManNH, if i want that message box to display all 35 lines, could i do something like.... MsgBox("", "count", $v[1] To $v[$maxFun]) ??
BrewManNH Posted December 18, 2012 Posted December 18, 2012 You can't do it that way. You'd have to create a string to display it. Look at _ArrayToString, and use @CRLF as the Delimiter parameter. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
Moderators Melba23 Posted December 18, 2012 Moderators Posted December 18, 2012 LetsAuto, You will have to put all the elements into a single variable: $sCount = "" For $i = 1 To $v[0] $sCount &= $v[$i] & @CRLF Next MsgBox(0, "Count", $sCount) or use another of those functions hidden away in the Help file: MsgBox(0, "Count", _ArrayToString($v, @CRLF)) 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
LetsAuto Posted December 18, 2012 Author Posted December 18, 2012 excellent, both of you are awesome. im very greatful for your help!!
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