2012-01-27 52 views
0

我對FileHelpers有一個好奇的問題。解析csv文件時,如果將引擎的IgnoreFirstLines參數設置爲大於0的任何值,並且遇到的第一個錯誤位於CSV文件的第一個不被忽略的行上,則該引擎不會正確保存RecordString。它保存了csv文件的第一行(被忽略的一行)。FileHelpers錯誤和RecordString

實施例: 引擎安裝:

engine.Options.IgnoreFirstLines = 2; 

CSV文件:

CSV Header,,, 
    Route,Comments,Route Type,Percent 
    1911,Comment1,RSR,1.3% 

如果有錯誤解析開頭的行 「1911」 的engine.ErrorManager.Errors [0 ]將不正確地將CSV文件的第一行存儲在RecordString屬性中。 LineNumber屬性保持正確。隨後的錯誤將具有正確的RecordString值。

我似乎無法找到任何關於此;我想知道有沒有人見過這樣的事情。

+0

也問在FileHelpers支持論壇上。 http://www.filehelpers.com/forums/viewtopic.php?f=4&t=1728&p=3306#p3306 – kav 2012-01-27 04:41:21

+0

你可以包括堆棧跟蹤,代碼等?這聽起來像是你的分隔符在你的類中可能是錯誤的,但是如果沒有這個類,讀取代碼,錯誤堆棧等,很難分辨出來。 – 2012-01-27 05:53:24

+0

在我的代碼中沒有異常/錯誤堆棧。我不認爲分隔符是錯誤的,因爲我可以成功解析數千條記錄。這就是IgnoreFirstLines設置的特定情況,第一行有一個錯誤(在被忽略的行之後)。 – kav 2012-01-27 06:46:11

回答

0

將ErrorMode設置爲SaveAndContinue並查看它是否在所有記錄上失敗可能很有用。

+0

嗨,詹姆斯。它已被設置爲SaveAndContinue,並且其餘的csv文件正確解析。我認爲這是FileHelpers庫中的一個錯誤。 – kav 2012-01-27 16:22:50

+0

你能提供repro還是原始代碼+文件?我很樂意調試它並提交補丁 – 2012-01-28 02:49:37