diff --git a/ApplicationLibCode/FileInterface/RifPressureDepthTextFileReader.cpp b/ApplicationLibCode/FileInterface/RifPressureDepthTextFileReader.cpp index f1d068205f..ca557a454b 100644 --- a/ApplicationLibCode/FileInterface/RifPressureDepthTextFileReader.cpp +++ b/ApplicationLibCode/FileInterface/RifPressureDepthTextFileReader.cpp @@ -58,12 +58,19 @@ std::pair, QString> RifPressureDepthTextFileRe while ( !in.atEnd() ) { QString line = in.readLine(); + + // Replace tab with space to be able to split the string using space as separator + line.replace( "\t", " " ); + if ( isHeaderLine( line ) ) { bool skipEmptyParts = true; - QStringList headerValues = RifFileParseTools::splitLineAndTrim( line, separator, skipEmptyParts ); RigPressureDepthData data; - data.setWellName( headerValues[1].replace( "'", "" ) ); + QStringList headerValues = RifFileParseTools::splitLineAndTrim( line, separator, skipEmptyParts ); + if ( headerValues.size() > 1 ) + { + data.setWellName( headerValues[1].replace( "'", "" ) ); + } items.push_back( data ); } else if ( isDateLine( line ) ) diff --git a/ApplicationLibCode/UnitTests/RifPressureDepthTextFileReader-Test.cpp b/ApplicationLibCode/UnitTests/RifPressureDepthTextFileReader-Test.cpp index f06b2acd84..54aaa8befe 100644 --- a/ApplicationLibCode/UnitTests/RifPressureDepthTextFileReader-Test.cpp +++ b/ApplicationLibCode/UnitTests/RifPressureDepthTextFileReader-Test.cpp @@ -92,3 +92,18 @@ PSIA FEET EXPECT_NEAR( 12008.0, values0[0].first, delta ); EXPECT_NEAR( 22640.66, values0[0].second, delta ); } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +TEST( RifPressureDepthTextFileReaderTest, LoadFileWithTabs ) +{ + QString fileName = CASE_REAL_TEST_DATA_DIRECTORY_04 + "example_file_tabs.txt"; + + auto [items, errorMessage] = RifPressureDepthTextFileReader::readFile( fileName ); + + EXPECT_TRUE( errorMessage.isEmpty() ); + ASSERT_EQ( 3u, items.size() ); + + EXPECT_EQ( "G-14", items[0].wellName().toStdString() ); +} diff --git a/ApplicationLibCode/UnitTests/TestData/RifPressureDepthTextFileReader/example_file_tabs.txt b/ApplicationLibCode/UnitTests/TestData/RifPressureDepthTextFileReader/example_file_tabs.txt new file mode 100644 index 0000000000..4c2274bc01 --- /dev/null +++ b/ApplicationLibCode/UnitTests/TestData/RifPressureDepthTextFileReader/example_file_tabs.txt @@ -0,0 +1,32 @@ +--TVDMSL +RFT +-- +WELLNAME 'G-14' +DATE 28-DEC-1995 +PRESSURE DEPTH +BARSA METRES +418.88 2726.91 +419.02 2729.36 +419.11 2733.29 +419.17 2735.26 +-- +WELLNAME 'G-14' +DATE 28-DEC-1996 +PRESSURE DEPTH +BARSA METRES +418.88 2726.91 +419.02 2729.36 +419.11 2733.29 +419.17 2735.26 +-- +WELLNAME 'F-56' +DATE 15-jan-12 +PRESSURE DEPTH +BARSA METRES +414.40 2911.029 +415.92 2929.496 +417.23 2935.801 +415.76 2934.981 +414.75 2919.446 +413.53 2903.147 +413.32 2896.555