VBScript programs demonstrating how to read lines from a comma delimited (CSV) file. VBScript functions are not good at reliably parsing values from such a file. Fortunately, Michael Harris, a Microsoft MVP (Most Valuable Professional), developed a VBScript solution that he shared in the newsgroups. The first program below is based on his work.

Comma delimited files are easy to read in Visual Basic (VB). You use the Open command to open the file, the Input command to read one line at a time, and the EOF function to recognize the end of the file. The VB Input command has built in functionality to parse comma delimited files correctly. However, these commands are not available in VBScript. In VBScript you use the FileSystemObject to read the file as a TextStream object. The ReadLine method of the TextStream object does not parse the lines.

The first program demonstrates a function to convert each line read from the file into an array of field values. The function recognizes that field values are delimited by commas. Field values can be enclosed in quotes. Quotes and commas embedded in quoted strings are ignored. Any missing values in the CSV file result in an empty value in the array.

ReadCSV.txt <<-- Click here to view or download the program

An alternative is to use ADO in a VBScript program to open the file with a Jet OLE DB driver that can parse comma delimited files. The second example demonstrates how to read such a file that does not have a header line.

ReadCSVFile2.txt <<-- Click here to view or download the program

The third example uses the Jet OLE DB driver to read a comma delimited file that has a header line. This allows the program to retrieve the field values by name.

ReadCSVFile3.txt <<-- Click here to view or download the program

Finally, an example that uses the JET OLE DB driver to read a comma delimited file that has a header line, then uses a Microsoft Access Jet driver to write records to an Access database.

ReadCSVFile4.txt <<-- Click here to view or download the program