【发布时间】:2020-10-30 16:18:25
【问题描述】:
我有一个制表符分隔文件并使用 CsvHelper 在 .Net c# 中解析它 不知何故,它在 1 条记录中失败并抛出 BadData,记录中似乎没有任何问题,我尝试在 excel 中粘贴并使用文本到列,它工作正常。
重现错误的代码
//add CsvHelper nuget package to project
//Create .txt file with below line and pass path of file into function
//copy text from https://gist.github.com/JitenPatoliya/9f9a15eb388c32f46231aa9fa35dd6e3
//Paste into your text file and try this code
private void TestCSvParser(string fullFilePath)
{
try
{
string ext = Path.GetExtension(fullFilePath);
using var reader = new StreamReader(fullFilePath);
using var csv = new CsvReader(reader, CultureInfo.InvariantCulture);
csv.Configuration.BadDataFound = BadDataFound;
csv.Configuration.DetectColumnCountChanges = true;
if (ext.IsContains(".txt"))
{
csv.Configuration.Delimiter = "\t";
}
while (csv.Read())
{
var fullrow = csv.Context.RawRecord;
var record = csv.Parser.Read();
}
}
catch (Exception ex)
{
}
}
private void BadDataFound(ReadingContext ctx)
{
//put debug point here
}
感谢您花时间研究这个问题
【问题讨论】:
-
你能发布一个示例数据吗?
-
@Magnetron 这是原始数据(将代码制作选项卡中的数据复制到空格,这就是我使用 gist 的原因)gist.github.com/JitenPatoliya/9f9a15eb388c32f46231aa9fa35dd6e3