This documentation was styled with a demo skin from the Premium Pack 4 add-on for Help & Manual. The contents of the skin are encrypted and not configurable. You can only publish HM projects with this skin. You cannot edit it or change it.
This version is copyright and may only be used for local testing purposes. It may not be distributed.
Please purchase the full version of the Premium Pack to get the configurable skins and remove this notice. The package will also include the Toolbox configuration utility for Premium Pack skins.
The functionality is exposed via cCSV class, offering all methods and properties for CSV interaction.
How to use this module
Example Script
'---Script created on 03-10-2023 17:36:25 by Eros Olmi
uses "CSV"
uses "console"
Dim myTimer As New cTimer
dim nRec as Long
dim nCol as long
printl "CSV Creation ..."
dim CSV_Sample_001 as new cCSV
'---Delimiter can be changed with .char.delim property (read/write) or in .Load method
' Default delim char is comma ,
'CSV_Sample_001.char.Delim = ";"
'---CSV can have remarks line starting with # char
' Remark char can be changed with the .char.remark property
'CSV_Sample_001.char.remark = "$"
'---Start timer
MyTimer.Start
'---Load CSV_Sample_001 data. Load method params:
' file name (mandatory)
' [true/false if first line is columns names (optional)
' [char seperator] (optional)
printl "Loading CSV file"
printl "Rows buffer default:", CSV_Sample_001.Row.Buffer
'printl CSV_Sample_001.Load(APP_ScriptPath + "Sample-Spreadsheet-5000-rows.csv", false, ",")
printl CSV_Sample_001.Load(APP_ScriptPath + "Sample-Spreadsheet-10000-rows.csv", true, ",")
printl "File loaded....:", CSV_Sample_001.FileName
printl "Char Separator.:", CSV_Sample_001.Char.Delim
printl "# of columns...:", CSV_Sample_001.Column.Count '---Number of columns
printl "# of rows......:", CSV_Sample_001.Row.Count '---Number of rows
printl
'---If CSV does not have columns names in first line, by default all columns names will be named "c" folowed by a number
' so c1, c2, c3, ...
printl "Name of columns"
for nCol = 1 to CSV_Sample_001.Column.Count
printl nCol, ":",
CSV_Sample_001.Column.Name(nCol), '---Get name giving ordinal
CSV_Sample_001.Column.Index(CSV_Sample_001.Column.Name(nCol)) '---Get ordinal giving name
Next
PrintL
'---Columns name is a get/set property. Here we change the last one and print out again
printl "Name of columns (changed last one into LastColumn)"
CSV_Sample_001.Column.Name(CSV_Sample_001.Column.Count) = "LastColumn"
for nCol = 1 to CSV_Sample_001.Columns
printl nCol, ":",
CSV_Sample_001.Column.Name(nCol),
CSV_Sample_001.Column.Index(CSV_Sample_001.Column.Name(nCol))
Next
PrintL
PrintL
printl "Elapsed loading time (sec):", MyTimer.Elapsed(%cTimer_Seconds)
printl
printl "Press a key to show first 5 lines of data data data"
WaitKey
for nRec = 1 to min(5, CSV_Sample_001.Rows)
for nCol = 1 to CSV_Sample_001.Columns
printl "Row:", nRec, "Col:", nCol, "Data:", CSV_Sample_001.Data(nRec, nCol), ""
next
printl
next
printl "---Closing ... press a key to end---"
WaitKey