Read multiple FAULTS keywords

A list of files are cached in the project file. When reading faults from
these files, make sure multiple FAULTS keywords in the same file is
parsed.
This commit is contained in:
Magne Sjaastad 2014-01-03 09:44:13 +01:00
parent 1a83008e39
commit 3e6954d7f5
4 changed files with 22 additions and 8 deletions

View File

@ -581,8 +581,13 @@ void RifEclipseInputFileTools::readFaults(const QString& fileName, cvf::Collecti
// Parse complete file if no keywords are parsed
if (fileKeywords.size() == 0)
{
qint64 filePos = 0;
readFaults(data, filePos, faults, NULL);
qint64 filePos = findKeyword(faultsKeyword, data, 0);
while (filePos != -1)
{
readFaults(data, filePos, faults, NULL);
filePos = findKeyword(faultsKeyword, data, filePos);
}
return;
}
@ -626,7 +631,7 @@ void RifEclipseInputFileTools::readFaultsInGridSection(const QString& fileName,
// Search for keyword grid
qint64 gridPos = findKeyword(gridKeyword, data);
qint64 gridPos = findKeyword(gridKeyword, data, 0);
if (gridPos < 0)
{
return;
@ -657,10 +662,12 @@ size_t RifEclipseInputFileTools::findFaultByName(const cvf::Collection<RigFault>
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
qint64 RifEclipseInputFileTools::findKeyword(const QString& keyword, QFile& file)
qint64 RifEclipseInputFileTools::findKeyword(const QString& keyword, QFile& file, qint64 startPos)
{
QString line;
file.seek(startPos);
do
{
line = file.readLine();

View File

@ -80,6 +80,6 @@ private:
static size_t findFaultByName(const cvf::Collection<RigFault>& faults, const QString& name);
static qint64 findKeyword(const QString& keyword, QFile& file);
static qint64 findKeyword(const QString& keyword, QFile& file, qint64 startPos);
};

View File

@ -396,10 +396,10 @@ bool RifReaderEclipseOutput::open(const QString& fileName, RigCaseData* eclipseC
QString faultFilename = this->filenamesWithFaults()[i];
RifEclipseInputFileTools::readFaults(faultFilename, faults, fileKeywords);
RigMainGrid* mainGrid = eclipseCase->mainGrid();
mainGrid->setFaults(faults);
}
RigMainGrid* mainGrid = eclipseCase->mainGrid();
mainGrid->setFaults(faults);
}
else
{

View File

@ -75,6 +75,13 @@ void CellRange::setRange(const cvf::Vec3st& min, const cvf::Vec3st& max)
m_min = min;
m_max = max;
CVF_ASSERT(m_min.x() != cvf::UNDEFINED_SIZE_T);
CVF_ASSERT(m_min.y() != cvf::UNDEFINED_SIZE_T);
CVF_ASSERT(m_min.z() != cvf::UNDEFINED_SIZE_T);
CVF_ASSERT(m_max.x() != cvf::UNDEFINED_SIZE_T);
CVF_ASSERT(m_max.y() != cvf::UNDEFINED_SIZE_T);
CVF_ASSERT(m_max.z() != cvf::UNDEFINED_SIZE_T);
CVF_ASSERT(normalize());
}