关注this后,我使用TextFieldParser
来读取csv文件:
Sub imp1(path As String)
With New TextFieldParser("C:\matrix1.csv")
.TextFieldType = FileIO.FieldType.Delimited
.Delimiters = New String() {";"}
.CommentTokens = New String() {"'"}
Debug.Print(.ReadToEnd)
' some more code to read the contents into a 2d-array
End with
End Sub
设置.CommentTokens = New String() {"'"}
后,我跳过了预期带有单引号的行。
但是,从我收集的内容来看,阅读csv时没有任何区别:
'comment1
1;0.5;0.9;0.3
0.5;1;0.6;0.2
0.9;0.6;1;0.1
0.3;0.2;0.1;1
我尝试将单引号'
替换为几个常见的评论字符(#
,\
,\*
),无论是否有以下空白 - 仍然没有获得理想的结果。
答案 0 :(得分:1)
在您的代码中,您使用的是TextFieldParser.ReadToEnd
,它只返回完整的剩余文本,并且不会忽略注释。记录在案:
ReadToEnd方法不会忽略空白行和注释。
如果您使用ReadFields
,评论将被忽略(MS示例):
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
' Include code here to handle the row.
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message &
" is invalid. Skipping")
End Try
End While