How to: read from comma-delimited text files in Visual Basic
The TextFieldParser
object provides a way to easily and efficiently parse structured text files, such as logs. The TextFieldType
property defines whether it is a delimited file or one with fixed-width fields of text.
To parse a comma delimited text file
Create a new
TextFieldParser
. The following code creates theTextFieldParser
namedMyReader
and opens the filetest.txt
.Using MyReader As New Microsoft.VisualBasic. FileIO.TextFieldParser( "C:\TestFolder\test.txt")
Define the
TextField
type and delimiter. The following code defines theTextFieldType
property asDelimited
and the delimiter as ",".MyReader.TextFieldType = FileIO.FieldType.Delimited MyReader.SetDelimiters(",")
Loop through the fields in the file. If any lines are corrupt, report an error and continue parsing. The following code loops through the file, displaying each field in turn and reporting any fields that are formatted incorrectly.
Dim currentRow As String() While Not MyReader.EndOfData Try currentRow = MyReader.ReadFields() Dim currentField As String For Each currentField In currentRow MsgBox(currentField) Next Catch ex As Microsoft.VisualBasic. FileIO.MalformedLineException MsgBox("Line " & ex.Message & "is not valid and will be skipped.") End Try
Close the
While
andUsing
blocks withEnd While
andEnd Using
.End While End Using
Example
This example reads from the file test.txt
.
Using MyReader As New Microsoft.VisualBasic.
FileIO.TextFieldParser(
"C:\TestFolder\test.txt")
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(",")
Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
MsgBox(currentField)
Next
Catch ex As Microsoft.VisualBasic.
FileIO.MalformedLineException
MsgBox("Line " & ex.Message &
"is not valid and will be skipped.")
End Try
End While
End Using
Robust programming
The following conditions may cause an exception:
A row cannot be parsed using the specified format (MalformedLineException). The exception message specifies the line causing the exception, while the ErrorLine property is assigned the text contained in the line.
The specified file does not exist (FileNotFoundException).
A partial-trust situation in which the user does not have sufficient permissions to access the file. (SecurityException).
The path is too long (PathTooLongException).
The user does not have sufficient permissions to access the file (UnauthorizedAccessException).
See also
- Microsoft.VisualBasic.FileIO.TextFieldParser
- How to: Read From Fixed-width Text Files
- How to: Read From Text Files with Multiple Formats
- Parsing Text Files with the TextFieldParser Object
- Walkthrough: Manipulating Files and Directories in Visual Basic
- Troubleshooting: Reading from and Writing to Text Files