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
var _reader = new StreamReader(_stream);
CsvHelper.Configuration.CsvConfiguration myConfig = new
CsvHelper.Configuration.CsvConfiguration(CultureInfo.InvariantCulture)
{
Delimiter = "\t"
};
var _csvReader = new CsvReader(_reader, myConfig);
5条答案
按热度按时间6qfn3psc1#
因此,出于某种原因,它只有在我执行以下操作时才起作用:
xj3cbfub2#
我在vb中解析制表符分隔的文件时遇到了类似的问题,直到我用vbTab替换了"\t"后才起作用
我的代码:
lh80um4z3#
我遇到了类似的问题与制表符分隔的文件-我无法让分隔符=“\t”工作...
然后我在配置中添加了
Encoding = Encoding.UTF8
,然后它工作了!yqlxgs2m4#
虽然挖掘源代码有一个分隔符参数。下面的代码为我工作。
来源:https://github.com/JoshClose/CsvHelper/blob/master/src/CsvHelper/Configuration/CsvConfiguration.cs
qgelzfjb5#
原答复的最新情况。
(由于某种原因,作为新答案发布的原始答案不可编辑)
最初的答案当然是正确的。后来,CsvHelper API稍有改变。以下是当前CsvHelper版本(30.0.1)的代码: