【问题标题】:CSV file Missing Row Separator , how to read it in c #? [duplicate]CSV 文件缺少行分隔符,如何在 C# 中读取它? [复制]
【发布时间】:2015-10-22 05:51:52
【问题描述】:

我的 CSV 文件如下,

Name,Place,                   <<--- Headers
Panindra,India,
Kumar,India,

正如我们所看到的,csv 文件在每一行的末尾包含额外的“逗号”而不是空白。并且缺少行分隔符/行分隔符,因此在 "FILE HELPERS" 中解析 csv 文件时显示错误。得到错误为 "在字段 ['Place'] 的末尾发现了多余的逗号"

如何解决这个问题??

我的分隔符类是这样的

using FileHelpers;
namespace CsvReader.Model
{ 

        [DelimitedRecord(",")]

        public class CSVModel
        {

        [FieldTrim(TrimMode.Both)]
        public string Name;

        [FieldTrim(TrimMode.Both)]
        public string Place;

}}

    ...

而解析代码是这样的……

...

 engine = new FileHelperAsyncEngine<CSVModel>();
                this.engine.Options.IgnoreFirstLines = 1;

engine.BeginReadFile(fullpath);

...

【问题讨论】:

  • 请用代码更新问题。
  • 到目前为止您尝试过什么?您目前是如何尝试管理的?
  • @Ben 我尝试使用 FILEHELPER,但未能解决此问题,我可以做的一件事是使用 REGEX 在每 2 个字段读取 csv 文件转义“,但我想要一些简单的东西..跨度>

标签: c# csv filehelpers fileparsing


【解决方案1】:

你可以写一些东西来预处理文件,比如

string[] readText = File.ReadAllLines(path);

for (int i=0;i<readText.length;i++)
{
    readText[i]=readText[i].Trim([',']);
}

File.WriteAllLines(path, readText);

【讨论】:

  • 您是否建议我通过删除所有“,”来重写 CSV 文件?我只想删除每行行尾的逗号..
  • 修剪不会出现在一行的中间,只有开头和结尾,所以它会起作用
猜你喜欢
  • 1970-01-01
  • 2020-11-09
  • 1970-01-01
  • 1970-01-01
  • 2015-10-15
  • 2020-06-18
  • 1970-01-01
  • 1970-01-01
  • 2016-02-02
相关资源
最近更新 更多