【发布时间】:2019-07-15 20:25:14
【问题描述】:
我正在尝试使用 CsvHelper 读取没有标题的管道分隔文件。我设置了分隔符 =“|”,设置 HasHeaderRecord = false,设置 MissingFieldFound = null 和 IgnoreBlankLines = true。 我注意到我的文件在文件末尾包含一个空行。我的文件包含 3 列。我创建了一个对象,将这些值与所有 3 的字符串属性一起放入。当我运行我的代码时,第一个变量包含所有 3 列,其他 2 个变量为空白。以下是我正在阅读的文件示例:
01001001|0.0|0.1200|
01001003|0.0|0.5000|
01008000|1.0|1.9200|
101384|9999.0|0.1000|
103073|9999.0|0.0730|
103074|9999.0|0.1600|
103491|9999.0|0.1460|
我在摘要中提供了这些信息。如果我没有设置 MissingFieldFound,我将无法读取该文件。我收到以下错误:
“索引 '1' 处的字段不存在。您可以通过将 MissingFieldFound 设置为 null 来忽略缺失的字段。”
using (var textReader = new StreamReader(@processFileName))
{
var reader = new CsvReader(textReader);
reader.Configuration.Delimiter = "|";
using (var record = new CsvReader(textReader))
{
record.Configuration.HasHeaderRecord = false;
record.Configuration.MissingFieldFound = null;
record.Configuration.IgnoreBlankLines = true;
var result3 = record.GetRecords<ItemFileInfo>().ToList();
}
}
public class ItemFileInfo
{
public string ItemCode { get; set; }
public string OnHand { get; set; }
public string Weight { get; set; }
}
我希望能够将这 3 个字段正确解析为一个列表,以便我可以对这些值进行一些更新。
提前感谢您的任何帮助。
【问题讨论】:
-
文件格式为0100100|0.0|0.1200|每行三个记录。抱歉剪切和粘贴
标签: csvhelper