TextFieldParser 不跳过 .CommentTokens-Lines

TextFieldParser not skipping .CommentTokens-Lines

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

我尝试用几个常见的注释字符(#\\*)替换单引号 ',包括和不包括以下空格 -仍然没有得到想要的结果。

在您的代码中,您使用的是 TextFieldParser.ReadToEnd,它只是 returns 完整的剩余文本并且不会忽略注释。这被记录在案:

The ReadToEnd method does not ignore blank lines and comments.

如果您使用 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