No FileHelpers не поддерживает файлы с необычными последовательностями символов конца строки по умолчанию.
Вероятно, было бы проще предварительно проанализировать файл и заменить последовательности EOL. Однако это расширяемая библиотека, поэтому вы можете создать собственный подкласс DataStorage . По сути, вам придется переопределить
public override object[] ExtractRecords()
{
using (MyStreamReader reader = new MyStreamReader(fileName, base.mEncoding, true, 102400))
{
T[] localArray = this.ReadStream(reader, maxRecords);
reader.Close();
return localArray;
}
}
, а затем создайте новый класс MyStreamReader, который будет идентичен (к сожалению sealed
) InternalStreamReader
за исключением ReadLine
, который содержит код EOL
switch (ch)
{
case '\n':
case '\r':
etc...
}
(Кстати, я имею в виду исходный код FileHelpers 2.9.9. Версия 2.0.0, похоже, использует System.IO.StreamReader
, поэтому вы можете просто создать его подкласс вместо дублирования InternalStreamReader
.