The below function reads data from any csv file and pass array of row values to another splitting function for decomposition.
Sample:
Function Util_Readcsv(StrFilename)
Dim innerIndex
Dim objFSO
Dim objTextFile
Dim strnextLine
Dim fileArray()
Set objFSO = CreateObject("Scripting.FileSystemObject")
If not objFSO.FileExists(StrFilename) Then
Call Log.Error("The File Path " & StrFilename & " cannot be found.")
Else
Set objTextFile= objFSO.OpenTextFile(StrFilename, 1)
innerIndex = 0
Call Log.Message("The File Path " & StrFilename & " was Found.")
Do Until objTextFile.AtEndOfStream
Redim Preserve fileArray(innerIndex)
strnextLine = objTextFile.Readline
fileArray(innerIndex)=strnextLine
innerIndex = innerIndex + 1
Loop
Util_Readcsv = fileArray
End If
End Function
(Note: this code based on VB scripts)
Function Steps:
1. Save file path as constant in main function and pass to above < Util_Readcsv(StrFilename)> function.
2. Create a file object for Read Functionality.
E.g. Set objFSO = CreateObject("Scripting.FileSystemObject")
3. Verify file object exist for Read Functionality.
e.g.
If not objFSO.FileExists(StrFilename) Then
Call Log.Error("The File Path " & StrFilename & " cannot be found.")
Else
4. Open file object and read file values starting from second line (since first line considered as “Field title” row) and split in to rows and assign to array.
5. Now, pass all splitted row values to decomposition.
E.g. Util_Readcsv = fileArray
6. All row values can be decomposed to field values by using following code sample.
Sample:
'Call Util_Readcsv function for read values from CSV file
FileArray = Util_Readcsv(FILENAME)
'Read Array Raw Values
For outerIndex = 1 to UBound(FileArray)
Call Util_LogFolderstack(outerIndex)
strnextLine = FileArray(outerIndex)
splitString = Split(strnextLine, ",") 'new line as the delimiter, Split returns an array
'Assigning field values each row in CSV file to array
for innerIndex = 0 to UBound(splitString)
Redim Preserve arrArray(innerIndex)
strText = splitString(innerIndex)
arrArray(innerIndex) = strText
next
Post a Comment