c# - 读取包含货币的逗号分隔 CSV

标签 c# csv streamreader

下面是从逗号分隔的 CSV 文件中读取的内容。

每行 [2] 中的第三个字段货币字段是问题所在。 我需要在逗号处拆分字段,但货币字段有时可能很大并且也有它们。

如何拆分包含货币的逗号分隔的 csv 文件??

csv 始终保持每行 5 个字段的一致性。

下面示例中的第一行有效,但第二行会导致问题。

下午 3,09:29,€20.00,测试,测试

1,02:55 am,€10,000.00,测试,测试

StreamReader fileIn = new StreamReader(path);
        //Read the file
        while (!fileIn.EndOfStream)
        {
           String line = fileIn.ReadLine();
           String[] pieces = line.Split(',');

           csvComplete cEve = new csvComplete (pieces[0], pieces[1], pieces[2], pieces[3], pieces[4]);// assign to class cEve
           entries.Add(cEve);

        }

如有任何链接或建议,我们将不胜感激。

最佳答案

我之前遇到过类似的问题,于是求助于 Microsoft.VisualBasic.FileIO.TextFieldParser。在你的情况下,试试这个:

using(TextFieldParser parser = new TextFieldParser(new StreamReader(path)){
    parser.Delimiters = new string [] {","};

    while(true){
        String[] pieces = parser.ReadFields();
        if(pieces == null)
            break;

        csvComplete cEve = new csvComplete (pieces[0], pieces[1], pieces[2], pieces[3], pieces[4]);// assign to class cEve
        entries.Add(cEve);
    }
}

可以找到更多信息 here .

关于c# - 读取包含货币的逗号分隔 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28057521/

相关文章:

c# - 尝试在 C# 中对数组进行排序时出现编译错误

c# - 回发时复选框状态重置

python - 如何在 Python 中从 CSV 导入数组数组

c# - 将 .txt 文件中错误的行添加到列表的最简单方法

c# - 从 XML 文件 C# 中删除回车

c# - 如何从文本文件中读取特定行并将它们存储为字符串。 C#

c# - 如何在 SQLite.net 中存储对象列表?

c# - Entity Framework 代码优先默认命名约定列表

php - 使用 PHP 跳过 csv 的特定行和列

python - csv 文件中的日期,我如何绘制它