mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-25 22:50:25 -05:00
CSV Parser: use cell separator when determining layout type.
This commit is contained in:
1 parent
dddb206dc4
commit
4a4941f759
4 files changed
+7
-6
No files matched your search
+1
-1
@@ -200,7 +200,7 @@ void RicPasteAsciiDataToSummaryPlotFeatureUi::setUiModeImport( const QString& fi
|
||||
{
|
||||
m_parser = std::unique_ptr<RifCsvUserDataParser>( new RifCsvUserDataFileParser( fileName ) );
|
||||
|
||||
if ( m_parser->determineCsvLayout() != RifCsvUserDataParser::LineBased )
|
||||
if ( m_parser->determineCsvLayout( mapCellSeparator( m_cellSeparator() ) ) != RifCsvUserDataParser::LineBased )
|
||||
{
|
||||
m_uiMode = UI_MODE_IMPORT;
|
||||
initialize( m_parser.get() );
|
||||
|
||||
@@ -38,6 +38,7 @@ public:
|
||||
, assumeNumericDataColumns( false )
|
||||
, curveSymbolSkipDistance( 0.0f )
|
||||
, defaultCategory( RifEclipseSummaryAddressDefines::SummaryCategory::SUMMARY_INVALID )
|
||||
, cellSeparator( ";" )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ std::expected<void, QString> RifCsvUserDataParser::parse( const RifAsciiDataPars
|
||||
const std::map<QString, QString>& nameMapping,
|
||||
const std::map<QString, std::pair<QString, double>>& unitMapping )
|
||||
{
|
||||
if ( determineCsvLayout() == LineBased )
|
||||
if ( determineCsvLayout( parseOptions.cellSeparator ) == LineBased )
|
||||
return parseLineBasedData( parseOptions );
|
||||
else
|
||||
return parseColumnBasedData( parseOptions, nameMapping, unitMapping );
|
||||
@@ -273,7 +273,7 @@ QStringList RifCsvUserDataParser::timeColumnPreviewData( int lineCount, const Ri
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifCsvUserDataParser::CsvLayout RifCsvUserDataParser::determineCsvLayout()
|
||||
RifCsvUserDataParser::CsvLayout RifCsvUserDataParser::determineCsvLayout( const QString& cellSeparator )
|
||||
{
|
||||
auto streamResult = openDataStream();
|
||||
if ( !streamResult ) return LineBased;
|
||||
@@ -286,7 +286,7 @@ RifCsvUserDataParser::CsvLayout RifCsvUserDataParser::determineCsvLayout()
|
||||
QString firstLine = dataStream->readLine();
|
||||
if ( firstLine.isEmpty() ) continue;
|
||||
|
||||
headers = RifFileParseTools::splitLineAndTrim( firstLine, ";" );
|
||||
headers = RifFileParseTools::splitLineAndTrim( firstLine, cellSeparator );
|
||||
|
||||
if ( headers.size() < 3 || headers.size() > 5 ) continue;
|
||||
break;
|
||||
@@ -610,7 +610,7 @@ std::expected<void, QString> RifCsvUserDataParser::parseLineBasedData( const Rif
|
||||
QString line = dataStream->readLine();
|
||||
if ( line.trimmed().isEmpty() ) continue;
|
||||
|
||||
QStringList dataItems = RifFileParseTools::splitLineAndTrim( line, ";" );
|
||||
QStringList dataItems = RifFileParseTools::splitLineAndTrim( line, parseOptions.cellSeparator );
|
||||
if ( dataItems.size() < 3 || dataItems.size() > 5 ) continue;
|
||||
|
||||
if ( !headerFound )
|
||||
|
||||
@@ -62,7 +62,7 @@ public:
|
||||
QString previewText( int lineCount, const RifAsciiDataParseOptions& parseOptions );
|
||||
QStringList timeColumnPreviewData( int lineCount, const RifAsciiDataParseOptions& parseOptions );
|
||||
|
||||
CsvLayout determineCsvLayout();
|
||||
CsvLayout determineCsvLayout( const QString& cellSeparator );
|
||||
|
||||
QString tryDetermineCellSeparator();
|
||||
QString tryDetermineDecimalSeparator( const QString& cellSeparator );
|
||||
|
||||
Reference in new issue
Block a user