我正在使用TextFieldParser
该类来读取逗号分隔值 (.csv) 文件。此文件中的字段用双引号括起来,例如"Field1","Field2"
.
所以,为了读取文件,我将对象的HasFieldsEnclosedInQuotes
属性设置TextFieldParser
为 true。MalformedLineException
但是当任何字段在开头包含双引号 (`"+ ) 时,我会收到错误消息。
示例:""Field2"with additional"
在这里我应该看到"Field2" with additional
输出。
但是,如果"
在除第一个位置之外的任何位置,则它可以正常工作。就像 line with"Field2 "with" additional"
工作得很好,并给了我Field2 "with" additional
作为输出。
有没有人有同样的问题?有什么办法可以解决这个问题吗?
这是我的代码:
Private Sub ReadTextFile(ByVal txtFilePath As String)
Dim myReader As tfp = New Microsoft.VisualBasic.FileIO.TextFieldParser(txtFilePath)
myReader.Delimiters = New String() {","}
myReader.TextFieldType = FileIO.FieldType.Delimited
myReader.HasFieldsEnclosedInQuotes = True
myReader.TrimWhiteSpace = True
Dim currentRow As String()
Dim headerRow As Integer = 0
While Not myReader.EndOfData
Try
currentRow = myReader.ReadFields()
'Read Header
If (headerRow = 0) Then
'Do work for Header Row
headerRow += 1
Else
'Do work for Data Row
End If
Catch ex As Exception
Dim errorline As String = myReader.ErrorLine
End Try
End While
End Sub
这是我在 csv 文件中的数据:
“列 1”、“列 2”、“列 3” "Value1","Value2",""A" 123 号楼"