DelimitedFileLongTextStreamFormatter
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using System.IO;
namespace kCura.WinEDDS.Exporters
{
public class DelimitedFileLongTextStreamFormatter : ILongTextStreamFormatter
{
private char _quoteDelimiter;
private char _newlineDelimiter;
private TextReader _source;
public DelimitedFileLongTextStreamFormatter(ExportFile settings, TextReader source)
{
_quoteDelimiter = settings.QuoteDelimiter;
_newlineDelimiter = settings.NewlineDelimiter;
_source = source;
}
public void TransformAndWriteCharacter(int character, TextWriter outputStream)
{
if (character == _quoteDelimiter)
outputStream.Write(Conversions.ToString(_quoteDelimiter) + Conversions.ToString(_quoteDelimiter));
else if (character == 13 || character == 10) {
outputStream.Write(_newlineDelimiter);
if (_source.Peek() == 10)
_source.Read();
} else {
outputStream.Write(Strings.ChrW(character));
}
}
void ILongTextStreamFormatter.TransformAndWriteCharacter(int character, TextWriter outputStream)
{
this.TransformAndWriteCharacter(character, outputStream);
}
}
}