Skip to content

Commit

Permalink
Bug fix csv writer output formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
nh43de committed Mar 23, 2023
1 parent 48eb17e commit ce96b2f
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions src/DataPowerTools/Csv/CSV.cs
Original file line number Diff line number Diff line change
Expand Up @@ -114,31 +114,32 @@ public static void Write(IEnumerable<object[]> rowObjects, IEnumerable<string> h
}
}

/// <summary>
/// Writes an IDataReader to a CSV file onto disk (streaming operation).
/// </summary>
/// <param name="reader"></param>
/// <param name="outputFile"></param>
/// <summary>
/// Writes an IDataReader to a CSV file onto disk (streaming operation).
/// </summary>
/// <param name="reader"></param>
/// <param name="outputFile"></param>
/// <param name="writeHeaders"></param>
public static void Write(IDataReader reader, string outputFile, bool writeHeaders = true)
{
using var ts = File.Open(outputFile, FileMode.Create);
using var sw = new StreamWriter(ts);
Write(reader, sw, writeHeaders);
using var csvWriter = new CSVWriter(sw);

Write(reader, sw, csvWriter, writeHeaders);
}

/// <summary>
/// Writes IDataReader to a TextWriter stream.
/// </summary>
/// <param name="reader"></param>
/// <param name="sw"></param>
/// <param name="csvWriter"></param>
/// <param name="writeHeaders"></param>
public static void Write(IDataReader reader, TextWriter sw, bool writeHeaders = true)
public static void Write(IDataReader reader, TextWriter sw, CSVWriter csvWriter, bool writeHeaders = true)
{
var isInitialized = false;
var fieldCount = 0;

using var csvWriter = new CSVWriter(sw);

void Initialize()
{
Expand Down Expand Up @@ -186,9 +187,10 @@ void Initialize()
public static string WriteString(IDataReader reader, bool writeHeaders = true, bool useTabFormat = false)
{
using var sw = new StringWriter();

using var csvWriter = useTabFormat ? new CSVWriter(sw, '\t', CSVWriter.NoQuoteCharacter) : new CSVWriter(sw);

Write(reader, sw, writeHeaders);
Write(reader, sw, csvWriter, writeHeaders);

return sw.ToString();
}
Expand Down

0 comments on commit ce96b2f

Please sign in to comment.