zzghost Posted April 22, 2018 Posted April 22, 2018 I am sure this has been asked and answered 1000 times but I could not find what I am looking for in the forum. I am trying to automate a repetitive task by using the data in a csv file. Example data 0001,1,1,1999 0002,1,1,1998 0003,2,1,2000 ect (5000 rows long so you can see how time consuming this is to type manually!) I pulled the csv into an array but I need to skip the first line (info about the array) and then use the "Send ( xxxxx )" command to step through each column and then move on to the next row. Please help me with the bit that allows me to start with row 1 and address each column then repeat with row 2 ect... thanks! expandcollapse popup#include <MsgBoxConstants.au3> #include <FileConstants.au3> #include <MsgBoxConstants.au3> #include <File.au3> #include <Array.au3> Global $g_bPaused = False HotKeySet("{PAUSE}", "HotKeyPressed") HotKeySet("{ESC}", "HotKeyPressed") Local $aArray = 0 _FileReadToArray("C:\mfgdates.csv", $aArray, Default, ",") Local $iRows = UBound($aArray, $UBOUND_ROWS) Local $iCols = UBound($aArray, $UBOUND_COLUMNS) Local $iDimension = UBound($aArray, $UBOUND_DIMENSIONS) ; The dimension of the array e.g. 1/2/3 dimensional. MsgBox($MB_SYSTEMMODAL, "", "The array is a " & $iDimension & " dimensional array with " & _ $iRows & " row(s) & " & $iCols & " column(s).") IPTOOL() Func IPTOOL() If @error Then MsgBox($MB_SYSTEMMODAL, "", "There was an error reading the file. @error: " & @error) Else For $i = 0 To $iRows - 1 ;this doesnt work (sad face) Send($aArray[column1]) ;how do I declare column1, 2, 3, 4??? Sleep(500) Send("{ENTER}") Sleep(6000) Send($aArray[column2]) Sleep(500) Send("{ENTER}") Sleep(5000) Send($aArray[column3]) Sleep(500) Send("{ENTER}") Sleep(5000) Send($aArray[column4]) Sleep(500) Send("{ENTER}") Sleep(5000) MsgBox($MB_SYSTEMMODAL, "", $aArray[column1] & "," & " " & $aArray[column2] & "," & " " & $aArray[column3] & "," & " " & $aArray[column4]) Next EndIf EndFunc Func HotKeyPressed() Switch @HotKeyPressed Case "{PAUSE}" $g_bPaused = Not $g_bPaused While $g_bPaused Sleep(100) ToolTip('Script is "Paused"', 0, 0) WEnd ToolTip("") Case "{ESC}" Exit EndSwitch EndFunc
zzghost Posted April 22, 2018 Author Posted April 22, 2018 Nevermind, it was in front of me the whole time.... just declare $j = 0 then use Send($aArray[$I][$j]) Send($aArray[$I][$j + 1]) ect
Subz Posted April 22, 2018 Posted April 22, 2018 You can use something like the following (fixed issue with "If @error") in IPTool function since this would return the @error from MsgBox not _FileReadToArray hope that makes sense. expandcollapse popup#include <FileConstants.au3> #include <MsgBoxConstants.au3> #include <File.au3> #include <Array.au3> Global $g_bPaused = False HotKeySet("{PAUSE}", "HotKeyPressed") HotKeySet("{ESC}", "HotKeyPressed") Local $aArray _FileReadToArray("C:\mfgdates.csv", $aArray, Default, ",") If @error Then Exit MsgBox(4096, "", "There was an error reading the file. @error: " & @error) Local $iRows = UBound($aArray, $UBOUND_ROWS) Local $iCols = UBound($aArray, $UBOUND_COLUMNS) Local $iDimension = UBound($aArray, $UBOUND_DIMENSIONS) ; The dimension of the array e.g. 1/2/3 dimensional. MsgBox($MB_SYSTEMMODAL, "", "The array is a " & $iDimension & " dimensional array with " & _ $iRows & " row(s) & " & $iCols & " column(s).") IPTOOL() Func IPTOOL() Local $sMsgBoxText = "" For $i = 1 To $iRows - 1 For $j = 0 To $iCols - 1 Send($aArray[$i][$j]) Sleep(500) Send("{ENTER}") If $j = $iCols - 1 Then $sMsgBoxText &= $aArray[$i][$j] Else $sMsgBoxText &= $aArray[$i][$j] & ", " EndIf Next Sleep(6000) MsgBox(4096, "", $sMsgBoxText) $sMsgBoxText = "" Next EndFunc Func HotKeyPressed() Switch @HotKeyPressed Case "{PAUSE}" $g_bPaused = Not $g_bPaused While $g_bPaused Sleep(100) ToolTip('Script is "Paused"', 0, 0) WEnd ToolTip("") Case "{ESC}" Exit EndSwitch EndFunc
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