From e15d26cddbd8ff8d111f075aadb63c9232df3f36 Mon Sep 17 00:00:00 2001 From: Rebecca Cox Date: Tue, 26 Sep 2017 10:12:05 +0200 Subject: [PATCH] #1933 Observed data: Add scaleFactor to ColumnInfo --- .../FileInterface/RifRsmspecParserTools.cpp | 22 ++++++++++++++----- .../FileInterface/RifRsmspecParserTools.h | 5 ++++- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/ApplicationCode/FileInterface/RifRsmspecParserTools.cpp b/ApplicationCode/FileInterface/RifRsmspecParserTools.cpp index 1b9bffb15f..e800fe2962 100644 --- a/ApplicationCode/FileInterface/RifRsmspecParserTools.cpp +++ b/ApplicationCode/FileInterface/RifRsmspecParserTools.cpp @@ -50,6 +50,12 @@ bool RifRsmspecParserTools::isLineSkippable(const std::string& line) { return true; } + + if (str.find("PAGE") < str.size()) + { + return true; + } + return false; } @@ -191,7 +197,7 @@ size_t RifRsmspecParserTools::findFirstNonEmptyEntryIndex(std::vector headerColumn) +RifEclipseSummaryAddress RifRsmspecParserTools::makeAndFillAddress(std::string quantityName, std::vector< std::string > headerColumn) { int regionNumber = -1; int regionNumber2 = -1; @@ -290,15 +296,19 @@ std::vector RifRsmspecParserTools::columnInfoForTable(std::stringstr table.push_back(columnInfo); } - if (scaleFactors.size() < columnCount) + if (scaleFactors.empty()) { - int diff = columnCount - scaleFactors.size(); - for (int i = 0; i < diff; i++) + for (size_t i = 0; i < table.size(); i++) { - scaleFactors.push_back("1.0"); + scaleFactors.push_back("1"); } } + for (size_t i = 0; i < table.size(); i++) + { + table[i].scaleFactor = scaleFactors[i]; + } + std::vector< std::vector< std::string > > restOfHeader; bool header = true; @@ -338,7 +348,7 @@ std::vector RifRsmspecParserTools::columnInfoForTable(std::stringstr { restOfHeaderColumn.push_back(restOfHeaderRow.at(i)); } - table[i].summaryAddress = makeAndFillAddress(scaleFactors.at(i), quantityNames.at(i), restOfHeaderColumn); + table[i].summaryAddress = makeAndFillAddress(quantityNames.at(i), restOfHeaderColumn); } return table; diff --git a/ApplicationCode/FileInterface/RifRsmspecParserTools.h b/ApplicationCode/FileInterface/RifRsmspecParserTools.h index 1932236b58..b259b8a1ca 100644 --- a/ApplicationCode/FileInterface/RifRsmspecParserTools.h +++ b/ApplicationCode/FileInterface/RifRsmspecParserTools.h @@ -33,7 +33,10 @@ struct ColumnInfo bool isAVector = false; RifEclipseSummaryAddress summaryAddress; std::string unitName; + std::string scaleFactor; std::vector values; + std::string dateFormat; + std::string origin; }; //================================================================================================== @@ -50,7 +53,7 @@ public: static RifEclipseSummaryAddress::SummaryVarCategory identifyCategory(const std::string& word); static void splitLineToDoubles(const std::string& line, std::vector& values); static size_t findFirstNonEmptyEntryIndex(std::vector& list); - static RifEclipseSummaryAddress makeAndFillAddress(std::string scaleFactor, std::string quantityName, std::vector< std::string > headerColumn); + static RifEclipseSummaryAddress makeAndFillAddress(std::string quantityName, std::vector< std::string > headerColumn); static std::vector columnInfoForTable(std::stringstream& data, std::string& line); static bool isANumber(const std::string& line); static std::vector headerReader(std::stringstream& streamData, std::string& line);