2015-02-23 66 views
0

簡而言之,我使用Lumen CSV閱讀器嘗試將CS​​V數據讀入我的程序。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列和更多列。

我已經嘗試將讀取器中的緩衝區大小更改爲各種值。我似乎無法在別處找到任何有關此問題的參考。

+0

也許讀者根本不支持那麼多列?你是否檢查過文檔或代碼? – 2015-02-23 11:37:32

+0

你好,我已經檢查了我能找到的所有東西,並且找不到這個參考。 – NDC 2015-02-25 10:29:13

+0

你能發佈你的整個相關代碼嗎?根據作者的代碼項目網站(http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader),他在145個領域(你可以從源頭獲得)進行測試。 – sous2817 2015-02-25 15:56:09

回答

0

從快速瀏覽代碼看來,它假定CSV文件具有固定數量的字段,並且這是從字段標題或從文件中讀取的第一條記錄計算得出的。

標題行有多少個字段?我懷疑那裏可能只有10個。

+0

根據我的經驗,具有比標題列更多的數據列導致索引超出範圍例外。 – phoog 2015-07-08 06:26:50