Вы можете использовать событие BeforeReadRecord
для анализа строки записи и установить skipThisRecord = True
для любых записей, которые нужно пропустить. Например:
FileHelperEngine engine = new FileHelperEngine(typeof(Orders));
// set the event here
engine.BeforeReadRecord += new BeforeReadRecordHandler(BeforeEvent);
Тогда само событие:
private void BeforeEvent(EngineBase engine, BeforeReadRecordEventArgs e)
{
// skip any bad lines
if (e.RecordLine.StartsWith(" ") || e.RecordLine.StartsWith("-"))
e.SkipThisRecord = true;
}
В приведенном выше примере любая запись, которая начинается с пробела или «-», будет пропущена, но вы можете применить любую логику, которая вам нужна. Вы можете использовать e.RecordLine.Split(',')
, чтобы разбить текущую строку на массив значений столбцов, а затем использовать DateTime.TryParse()
, чтобы определить, является ли строка даты действительной.