mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#5434 Ensemble Parameters : Improve robustness Runspec reader
This commit is contained in:
@@ -245,6 +245,8 @@ void RifCaseRealizationRunspecificationReader::parse()
|
|||||||
auto file = openFile();
|
auto file = openFile();
|
||||||
QXmlStreamReader xml( file );
|
QXmlStreamReader xml( file );
|
||||||
|
|
||||||
|
QStringList errors;
|
||||||
|
|
||||||
QString paramName;
|
QString paramName;
|
||||||
|
|
||||||
while ( !xml.atEnd() )
|
while ( !xml.atEnd() )
|
||||||
@@ -269,30 +271,24 @@ void RifCaseRealizationRunspecificationReader::parse()
|
|||||||
|
|
||||||
if ( paramName.isEmpty() ) continue;
|
if ( paramName.isEmpty() ) continue;
|
||||||
|
|
||||||
if ( RiaStdStringTools::startsWithAlphabetic( paramStrValue.toStdString() ) )
|
if ( RiaStdStringTools::isNumber( paramStrValue.toStdString(), QLocale::c().decimalPoint().toLatin1() ) )
|
||||||
{
|
{
|
||||||
m_parameters->addParameter( paramName, paramStrValue );
|
bool parseOk = true;
|
||||||
|
double value = QLocale::c().toDouble( paramStrValue, &parseOk );
|
||||||
|
if ( parseOk )
|
||||||
|
{
|
||||||
|
m_parameters->addParameter( paramName, value );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( !RiaStdStringTools::isNumber( paramStrValue.toStdString(),
|
errors << QString(
|
||||||
QLocale::c().decimalPoint().toLatin1() ) )
|
"RifCaseRealizationRunspecificationReader: Invalid number format in line %1" )
|
||||||
{
|
.arg( xml.lineNumber() );
|
||||||
throw FileParseException(
|
|
||||||
QString( "RifEnsembleParametersReader: Invalid number format in line %1" )
|
|
||||||
.arg( xml.lineNumber() ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool parseOk = true;
|
|
||||||
double value = QLocale::c().toDouble( paramStrValue, &parseOk );
|
|
||||||
if ( !parseOk )
|
|
||||||
{
|
|
||||||
throw FileParseException(
|
|
||||||
QString( "RifEnsembleParametersReader: Invalid number format in line %1" )
|
|
||||||
.arg( xml.lineNumber() ) );
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
m_parameters->addParameter( paramName, value );
|
{
|
||||||
|
m_parameters->addParameter( paramName, paramStrValue );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -306,6 +302,11 @@ void RifCaseRealizationRunspecificationReader::parse()
|
|||||||
}
|
}
|
||||||
|
|
||||||
closeFile();
|
closeFile();
|
||||||
|
|
||||||
|
for ( const auto& s : errors )
|
||||||
|
{
|
||||||
|
RiaLogging::warning( s );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user