mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4017 Automatic parsing of date-time format in CSV Observed Time History Data
This commit is contained in:
parent
77a12f13c1
commit
987cb92f43
@ -466,7 +466,7 @@ void RicPasteAsciiDataToSummaryPlotFeatureUi::fieldChangedByUi(const caf::PdmFie
|
|||||||
{
|
{
|
||||||
if (changedField == &m_cellSeparator || changedField == &m_timeSeriesColumnName)
|
if (changedField == &m_cellSeparator || changedField == &m_timeSeriesColumnName)
|
||||||
{
|
{
|
||||||
m_previewText = m_parser->previewText(PREVIEW_TEXT_LINE_COUNT, parseOptions());
|
updatePreviewTextAndDateFormat();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -495,5 +495,23 @@ void RicPasteAsciiDataToSummaryPlotFeatureUi::initialize(RifCsvUserDataParser* p
|
|||||||
m_timeSeriesColumnName = QString::fromStdString(parser->tableData().columnInfos()[0].columnName());
|
m_timeSeriesColumnName = QString::fromStdString(parser->tableData().columnInfos()[0].columnName());
|
||||||
}
|
}
|
||||||
|
|
||||||
m_previewText = parser->previewText(PREVIEW_TEXT_LINE_COUNT, parseOptions());
|
updatePreviewTextAndDateFormat();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RicPasteAsciiDataToSummaryPlotFeatureUi::updatePreviewTextAndDateFormat()
|
||||||
|
{
|
||||||
|
m_previewText = m_parser->previewText(PREVIEW_TEXT_LINE_COUNT, parseOptions());
|
||||||
|
|
||||||
|
QStringList timeStrings = m_parser->timeColumnPreviewData(PREVIEW_TEXT_LINE_COUNT, parseOptions());
|
||||||
|
|
||||||
|
DateFormat df = DATE_DDMMYYYY_DOT_SEPARATED;
|
||||||
|
for (auto& s : timeStrings)
|
||||||
|
{
|
||||||
|
df = dateFormatFromString(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_dateFormat = df;
|
||||||
}
|
}
|
||||||
|
@ -143,6 +143,7 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void initialize(RifCsvUserDataParser* parser);
|
void initialize(RifCsvUserDataParser* parser);
|
||||||
|
void updatePreviewTextAndDateFormat();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
UiMode m_uiMode;
|
UiMode m_uiMode;
|
||||||
|
@ -218,6 +218,52 @@ QString RifCsvUserDataParser::previewText(int lineCount, const AsciiDataParseOpt
|
|||||||
return preview;
|
return preview;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
QStringList RifCsvUserDataParser::timeColumnPreviewData(int lineCount, const AsciiDataParseOptions& parseOptions)
|
||||||
|
{
|
||||||
|
QStringList timeStrings;
|
||||||
|
|
||||||
|
QTextStream* stream = openDataStream();
|
||||||
|
|
||||||
|
if (stream)
|
||||||
|
{
|
||||||
|
int timeColumnIndex = -1;
|
||||||
|
int iLine = 0;
|
||||||
|
|
||||||
|
while (iLine < lineCount && !stream->atEnd())
|
||||||
|
{
|
||||||
|
QString line = stream->readLine();
|
||||||
|
|
||||||
|
if (line.isEmpty()) continue;
|
||||||
|
|
||||||
|
int iCol = 0;
|
||||||
|
QStringList cols = RifFileParseTools::splitLineAndTrim(line, parseOptions.cellSeparator);
|
||||||
|
for (const QString& cellData : cols)
|
||||||
|
{
|
||||||
|
if (cellData == parseOptions.timeSeriesColumnName && iLine == 0)
|
||||||
|
{
|
||||||
|
timeColumnIndex = iCol;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (iLine > 0 && timeColumnIndex != -1 && timeColumnIndex == iCol)
|
||||||
|
{
|
||||||
|
timeStrings.push_back(cellData);
|
||||||
|
}
|
||||||
|
|
||||||
|
iCol++;
|
||||||
|
}
|
||||||
|
|
||||||
|
iLine++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
closeDataStream();
|
||||||
|
|
||||||
|
return timeStrings;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -784,4 +830,4 @@ void RifCsvUserDataPastedTextParser::closeDataStream()
|
|||||||
delete m_textStream;
|
delete m_textStream;
|
||||||
m_textStream = nullptr;
|
m_textStream = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,6 +54,7 @@ public:
|
|||||||
|
|
||||||
bool parseColumnInfo(const AsciiDataParseOptions& parseOptions);
|
bool parseColumnInfo(const AsciiDataParseOptions& parseOptions);
|
||||||
QString previewText(int lineCount, const AsciiDataParseOptions& parseOptions);
|
QString previewText(int lineCount, const AsciiDataParseOptions& parseOptions);
|
||||||
|
QStringList timeColumnPreviewData(int lineCount, const AsciiDataParseOptions& parseOptions);
|
||||||
|
|
||||||
CsvLayout determineCsvLayout();
|
CsvLayout determineCsvLayout();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user