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,23 +187,20 @@ 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;
myFile->Open(eLECTURE_ECRITURE, &aRet); if ( write ) {
// if (aRet < 0) myFile->Open(eLECTURE_ECRITURE, &aRet);
// myFile->Close(); if (aRet < 0) {
// myFile->Open(eLECTURE_AJOUT, &aRet); myFile->Close();
// } myFile->Open(eCREATION, &aRet);
if (aRet < 0) { }
myFile->Close();
myFile->Open(eLECTURE, &aRet);
} }
if (aRet < 0) { else {
myFile->Close(); myFile->Open(eLECTURE, &aRet);
myFile->Open(eCREATION, &aRet);
} }
} }

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();