2015-01-08 2 views
0

분야 후 발견 될 할수 없어 :FileHelpers : 구분 기호 '|' 나는 큰 CSV 파일처럼 보이는 (1GB)가

FileHelperEngine engine = new FileHelperEngine(typeof(BGDTMDF)); 
BGDTMDF[] tab = (BGDTMDF[])engine.ReadFile(path); 

: 나는 다음과 같은 코드를 사용하여 FileHelpers를 사용하여이 파일을 읽으려고

1140|2017|0213065852|2001|99|Ä‚/ŮŌçlš˝Ă_Âá'ÄǸ|-3858,18|4015,36|100,17|19,34|0,00|0,00|0,00|40,00|0,00|0,00|0,00|32,57|0,00|0,00|0,00|0,00|0,00|0,00|0,00|0,00|0,00|12|12|74|18|24620,65|11903,96|29385,35|10993,94|0,00|-2520,88|0|0100|301|02|0302|N|N|N| | |2001-12-27 00:00:00|N|1140|1313|BG4CSXF0|  |2002-01-01 00:28:13| |0,00|0,00|0,00|0,00|0,00|0,00|0,00|0,00|0,00|0,00|0,00 
1140|2017|0213065852|2002|99|ľë¸Â‰_gÂýľ)Ľ¸ů_°Ë 
…p'™m'î'Ä_|-3799,76|3982,22|461,66|1,48|0,00|0,00|0,00|0,00|0,00|0,00|0,00|100,23|0,00|0,00|0,00|0,00|0,00|0,00|0,00|0,00|0,00|27|43|189|20|40140,74|48835,00|69605,32|19312,00|0,00|-3427,87|0|0100|301|02|0303|N|N|N| | |2002-12-27 00:00:00|N|1140|1313|BG4CSXF0|  |2003-01-01 01:35:56| |0,00|0,00|0,00|0,00|0,00|0,00|0,00|0,00|0,00|0,00|0,00 

:

The delimiter '|' can´t be found after the field 'MDF_SALDOS_MEDIOS' at line 2 (the record has less fields, the delimiter is wrong or the next field must be marked as optional).

내 클래스는 다음과 같습니다 오류가 발생합니다

(이 클래스의 일부만 (너무 커서))

도움이 필요하십니까?

+0

대용량 파일의 경우 'FileHelperAsyncEngine'을 사용해야합니다. 예제는 [이 답변] (http://stackoverflow.com/a/15234867/1077279)을 참조하십시오. – shamp00

답변

0

내 해결책은 클래스의 모든 fileds를 [FieldOptional]로 표시하는 것입니다.

+0

마지막 필드에서만'FieldOptional'이 필요할 수도 있습니다. FileHelpers 2.0.0.0에 존재하지만 2.9.9로 고정되어있는 [이 버그] (http://stackoverflow.com/a/10657781/1077279)에 부딪 히고있는 것 같습니다. – shamp00