Lumen CSV阅读器无法读取第10列或之后
问题描述:
简而言之,我使用Lumen CSV阅读器尝试将CSV数据读入我的程序。Lumen CSV阅读器无法读取第10列或之后
我遍历列行内做:
// open the file "data.csv" which is a CSV file with headers
using (CsvReader csv = new CsvReader(new StreamReader(Path), true))
{
string[] headers = csv.GetFieldHeaders();
int RowCount = 1;
while (csv.ReadNextRecord())
{
int TakenValsRowPosCount = 1; //Leave the first value at 0 for weird style
for (int i = 0; i < csv.FieldCount; i++)
{
if (HeaderstoInput.Contains(headers[i]))
{
if(!String.IsNullOrWhiteSpace(csv[i]))
InputVals[RowCount, TakenValsRowPosCount] = Convert.ToDouble(csv[i]);
TakenValsRowPosCount++;
}
}
RowCount++;
}
}
出于某种原因,这项工作完全正常,直到我达到10这个值并在此之后的所有值都返回“”(在腕表)。即使那里有数据。
我已经尝试从CSV中删除列以将第十列左移,并阅读它,并工作。因此,数据本身似乎不是问题,只是第10列和更多列。
我已经尝试将读取器中的缓冲区大小更改为各种值。我似乎无法在别处找到任何有关此问题的参考。
答
从快速浏览代码看来,它假定CSV文件具有固定数量的字段,并且这是从字段标题或从文件中读取的第一条记录计算得出的。
标题行有多少个字段?我怀疑那里可能只有10个。
+0
根据我的经验,具有比标题列更多的数据列导致索引超出范围例外。 – phoog 2015-07-08 06:26:50
也许读者根本不支持那么多列?你是否检查过文档或代码? – 2015-02-23 11:37:32
你好,我已经检查了我能找到的所有东西,并且找不到这个参考。 – NDC 2015-02-25 10:29:13
你能发布你的整个相关代码吗?根据作者的代码项目网站(http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader),他在145个领域(你可以从源头获得)进行测试。 – sous2817 2015-02-25 15:56:09