Mercurial > hg > svcore
diff data/fileio/CSVStreamWriter.h @ 1835:804dd0c06f0e
Merge from branch sensible-delimited-data-strings
author | Chris Cannam |
---|---|
date | Mon, 06 Apr 2020 13:55:44 +0100 |
parents | 21c792334c2e |
children |
line wrap: on
line diff
--- a/data/fileio/CSVStreamWriter.h Fri Apr 03 12:12:02 2020 +0100 +++ b/data/fileio/CSVStreamWriter.h Mon Apr 06 13:55:44 2020 +0100 @@ -20,7 +20,9 @@ #include "base/Selection.h" #include "base/ProgressReporter.h" #include "base/DataExportOptions.h" +#include "base/StringBits.h" #include "data/model/Model.h" + #include <QString> #include <algorithm> #include <numeric> @@ -68,20 +70,21 @@ const auto start = readPtr; const auto end = std::min(start + blockSize, endFrame); - const auto data = model.toDelimitedDataString( - delimiter, + const auto data = model.toStringExportRows( options, start, end - start - ).trimmed(); + ); - if ( data != "" ) { - if (started) { - oss << "\n"; - } else { - started = true; + if (!data.empty()) { + for (const auto &row: data) { + if (started) { + oss << "\n"; + } else { + started = true; + } + oss << StringBits::joinDelimited(row, delimiter); } - oss << data; } nFramesWritten += end - start; @@ -120,7 +123,7 @@ }; MultiSelection regions; regions.addSelection(all); - return CSVStreamWriter::writeInChunks( + return writeInChunks( oss, model, regions, @@ -141,7 +144,7 @@ const sv_frame_t blockSize = 16384) { const Selection empty; - return CSVStreamWriter::writeInChunks( + return writeInChunks( oss, model, empty,