Handle blank lines in LeafInput

This commit is contained in:
2023-02-27 10:54:43 -05:00
parent 48ab9a19e8
commit 2082eba527
9 changed files with 116 additions and 43 deletions
+8 -9
View File
@@ -10,25 +10,25 @@ namespace LeafWeb.Core.Parsers
private readonly MemoryStream _memoryStream;
protected readonly CsvReader CsvReader;
protected CsvParserBase(FileSystemInfo csvFile)
protected CsvParserBase(FileSystemInfo csvFile, bool ignoreBlankLines)
{
_reader = OpenCsv(csvFile);
CsvReader = InitCsvReader(_reader);
CsvReader = InitCsvReader(_reader, ignoreBlankLines);
}
protected CsvParserBase(byte[] fileContents)
protected CsvParserBase(byte[] fileContents, bool ignoreBlankLines)
{
_memoryStream = new MemoryStream(fileContents);
_reader = new StreamReader(_memoryStream);
CsvReader = InitCsvReader(_reader);
CsvReader = InitCsvReader(_reader, ignoreBlankLines);
}
private static CsvReader InitCsvReader(StreamReader reader)
private static CsvReader InitCsvReader(TextReader reader, bool ignoreBlankLines)
{
var csvReader = new CsvReader(reader);
csvReader.Configuration.HasHeaderRecord = false;
csvReader.Configuration.IgnoreBlankLines = false;
csvReader.Configuration.IgnoreBlankLines = ignoreBlankLines;
csvReader.Configuration.ReadingExceptionOccurred = exception => false;
return csvReader;
}
@@ -53,8 +53,7 @@ namespace LeafWeb.Core.Parsers
public void Dispose()
{
_reader.Dispose();
if (_memoryStream != null)
_memoryStream.Dispose();
}
_memoryStream?.Dispose();
}
}
}