简而言之,我使用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列和更多列。
我已经尝试将读取器中的缓冲区大小更改为各种值。我似乎无法在别处找到任何有关此问题的参考。
也许读者根本不支持那么多列?你是否检查过文档或代码? – 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