Issue !16751: [CEA16749] import MED 3.0 files in SMESH: exception

This commit is contained in:
vsr 2019-03-28 14:54:46 +03:00
parent 550595c56d
commit 3421298e04
3 changed files with 12 additions and 15 deletions

View File

@ -211,7 +211,7 @@ namespace MED
if (!CheckCompatibility(fileName)) { if (!CheckCompatibility(fileName)) {
EXCEPTION(std::runtime_error, "Cannot open file '"<<fileName<<"'."); EXCEPTION(std::runtime_error, "Cannot open file '"<<fileName<<"'.");
} }
return new MED::TWrapper(fileName); return new MED::TWrapper(fileName, false);
} }
PWrapper CrWrapperW(const std::string& fileName, int theVersion) PWrapper CrWrapperW(const std::string& fileName, int theVersion)
@ -251,6 +251,6 @@ namespace MED
CreateEmptyMEDFile(fileName, theVersion); CreateEmptyMEDFile(fileName, theVersion);
} }
} }
return new MED::TWrapper(fileName, minor); return new MED::TWrapper(fileName, true, minor);
} }
} }

View File

@ -187,25 +187,22 @@ namespace MED
//--------------------------------------------------------------- //---------------------------------------------------------------
TWrapper TWrapper
::TWrapper(const std::string& theFileName, TInt theMinor): ::TWrapper(const std::string& theFileName, bool write, TInt theMinor):
myFile(new TFile(theFileName, theMinor)), myFile(new TFile(theFileName, theMinor)),
myMinor(theMinor) myMinor(theMinor)
{ {
TErr aRet; TErr aRet;
if ( write ) {
myFile->Open(eLECTURE_ECRITURE, &aRet); myFile->Open(eLECTURE_ECRITURE, &aRet);
// if (aRet < 0)
// myFile->Close();
// myFile->Open(eLECTURE_AJOUT, &aRet);
// }
if (aRet < 0) {
myFile->Close();
myFile->Open(eLECTURE, &aRet);
}
if (aRet < 0) { if (aRet < 0) {
myFile->Close(); myFile->Close();
myFile->Open(eCREATION, &aRet); myFile->Open(eCREATION, &aRet);
} }
} }
else {
myFile->Open(eLECTURE, &aRet);
}
}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
TWrapper:: TWrapper::

View File

@ -52,7 +52,7 @@ namespace MED
TWrapper& operator=(const TWrapper&); TWrapper& operator=(const TWrapper&);
public: public:
TWrapper(const std::string& theFileName, TInt theVersion=-1); TWrapper(const std::string& theFileName, bool write, TInt theVersion=-1);
virtual virtual
~TWrapper(); ~TWrapper();