prmanningham Posted September 6, 2012 Share Posted September 6, 2012 Hi guys, I've tried a few UDFs to help me achieve my goal but I unfortunately didn't suceed yet. I don't know if one of you has an easy solution for the goal I'm trying to achieve. Here's what I'm trying to do : I have a csv of 1191 lines with 3 values on each lines separated by ";" I would like to separate each value and process each line in a loop. Thanks in advance for the help. Link to comment Share on other sites More sharing options...
BrewManNH Posted September 6, 2012 Share Posted September 6, 2012 We're going to need more information than that. what do you mean when you say "I would like to separate each value and process each line in a loop."? Explain what it is you're trying to do with each line, what you're trying to do with each value that you're separating in the line. I'd start by looking at FileRead, or _FileReadToArray, or FileReadline and then use StringSplit on the lines of the file. 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 Link to comment Share on other sites More sharing options...
prmanningham Posted September 6, 2012 Author Share Posted September 6, 2012 Sorry for not providing enough details. First value is workstation name, second is the path to file I'm trying to process and third is the username The script needs to check if local workstation name = value1. If positive copy value2 to a network share while renaming the file to value3-%time%.pst and so on for each line. Thanks for pointing me to StringSplit. This seems to be what I was looking for Link to comment Share on other sites More sharing options...
jdelaney Posted September 6, 2012 Share Posted September 6, 2012 This will work: #include <Array.au3> $string = "test1,test2,test3" & @crlf & "test4,test5,test6" & @CRLF & "test7,test8,test9" $atest = StringRegExp( $string, "(.*),(.*),(.*)", 4) _ArrayDisplay ( $atest ) For $i=0 To UBound ( $atest ) - 1 _ArrayDisplay ( $atest[$i] ) Next replace the string with the file's text IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window. Link to comment Share on other sites More sharing options...
water Posted September 6, 2012 Share Posted September 6, 2012 To read/write a CSV file to/from an array you could use this UDF. 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 Link to comment Share on other sites More sharing options...
czardas Posted September 7, 2012 Share Posted September 7, 2012 (edited) Water, the link seems to be broken.prmanningham, I have been using my UDF for a while now without ever experiencing problems. ProgAndy has also written a you might like to try. There are one or two small differences. Edited September 7, 2012 by czardas operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
water Posted September 7, 2012 Share Posted September 7, 2012 I checked the link. one works. 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 Link to comment Share on other sites More sharing options...
prmanningham Posted September 7, 2012 Author Share Posted September 7, 2012 thanks all! I tried this and I keep getting an error saying : "Array variable has incorrect number of subscripts or subscript dimension range exceeded." Shoud this be displaying each line of my CSV? #include <array.au3> #include <CSV.au3> $rc = _ParseCSV("c:testpst.csv", ";") For $i = 0 To UBound($rc) _ArrayDisplay($rc[$i]) ; You can now use the array as necessary Next Link to comment Share on other sites More sharing options...
water Posted September 7, 2012 Share Posted September 7, 2012 Try_ArrayDisplay($rc)_ArrayDisplay is able to display 1D and 2D arrays. 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 Link to comment Share on other sites More sharing options...
jdelaney Posted September 7, 2012 Share Posted September 7, 2012 You would only need to loop through the array if it were an array of arrays, like in my example. Yours is considered a 2D array. Also, you should use the upper limit as UBound()-1, when it is a legit loop you need to do. IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window. Link to comment Share on other sites More sharing options...
czardas Posted September 7, 2012 Share Posted September 7, 2012 (edited) EDITED OUT (oops I just saw what the problem was - answered by water) jdelaney, I don't think using an array of arrays is more suitable. It is recommended that you avoid doing this. prmanningham, you need to subtract 1 if you use ubound to loop through the rows. For $i = 0 To UBound($rc) -1 ; Subtract 1 If you want to loop through the columns, you need a second loop inside the first loop. No time to demonstrate right now, but someone will help you further, I'm sure. Edited September 7, 2012 by czardas operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
jdelaney Posted September 7, 2012 Share Posted September 7, 2012 It's an autoit function that produces it IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window. Link to comment Share on other sites More sharing options...
czardas Posted September 7, 2012 Share Posted September 7, 2012 It's an autoit function that produces it I see. You're forgiven. jdelaney 1 operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
prmanningham Posted September 10, 2012 Author Share Posted September 10, 2012 Awesome guys, I've been able to finish my script with your help! Thanks a lot! 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