5

我正在尝试读取制表符分隔的 CSV 文件并使用 CSVHelper 对其进行解析。

我有以下内容:

 _reader = new StreamReader(_stream);
 _csvReader = new CsvReader(_reader);
 _csvReader.Configuration.Delimiter = "\t";

但阅读器无法正确识别和解析文件

有任何想法吗 ?
CSVHelper 可能的分隔符是什么?

4

3 回答 3

9

因此,由于某种原因,事实证明它在我执行以下操作时才有效:

 _reader = new StreamReader(_stream);

 CsvHelper.Configuration.Configuration myConfig = new 
     CsvHelper.Configuration.Configuration();

 _csvReader.Configuration.Delimiter = "\t";

 _csvReader = new CsvReader(_reader, myConfig);
于 2020-03-01T12:40:39.830 回答
0

我在解析 vb 中的制表符分隔文件时遇到了类似的问题,直到我用 vbTab 替换 "\t" 才对我有用

我的代码:

Imports System.Globalization
Imports System.IO
Imports CsvHelper
Imports CsvHelper.Configuration
Imports CsvHelper.Configuration.Attributes

Public Class TabDelimetedReader
    Public Shared Function ReadFile(path As String) As IEnumerable(Of TabFileDefinition)

        Dim config = New CsvConfiguration(CultureInfo.InvariantCulture,
            hasHeaderRecord:=False,
            delimiter:=vbTab)

        Using reader As StreamReader = New StreamReader(path)
            Using tsv = New CsvReader(reader, config)
                Return tsv.GetRecords(Of TabFileDefinition).ToList
            End Using
        End Using

    End Function
End Class
于 2021-01-31T01:15:25.793 回答
0

我在制表符分隔的文件中遇到了类似的问题 - 我无法让 Delimiter = "\t" 工作......

然后我Encoding = Encoding.UTF8在配置中添加,然后它工作了!

于 2021-03-04T18:11:40.650 回答