From: mzn Date: Wed, 6 Dec 2006 14:40:44 +0000 (+0000) Subject: Additional fix for bug PAL13701(EDF 319 SMESH : Export UNV failed with not enough... X-Git-Tag: V3_2_4pre1~38 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=a3c6d051d0c35a69994dd0bf035d865311a7791d;p=modules%2Fsmesh.git Additional fix for bug PAL13701(EDF 319 SMESH : Export UNV failed with not enough space disk --> No user information). --- diff --git a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx index f0c2203f3..b9554e306 100644 --- a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx +++ b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx @@ -35,6 +35,7 @@ #include "UNV_Utilities.hxx" using namespace std; +using namespace UNV; namespace{ typedef std::vector TConnect; @@ -292,6 +293,11 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() } UNV2417::Write(out_stream,aDataSet2417); }*/ + + out_stream.flush(); + out_stream.close(); + if (!check_file(myFile)) + EXCEPTION(runtime_error,"ERROR: Output file not good."); } catch(const std::exception& exc){ INFOS("Follow exception was cought:\n\t"< #include +#include #include #include #include @@ -87,6 +88,24 @@ namespace UNV{ } return atof (number.c_str()); } + + /** + * @returns \p false when file is incorrect, \p true otherwise. + * Check file with name \p theFileName for correct terminate + * string, i.e. the next to the last line is equal to " -1", + */ + inline bool check_file(const std::string theFileName) + { + std::ifstream in_stream(theFileName.c_str()); + if (!in_stream) + return false; + std::string olds, news; + while (!in_stream.eof()){ + olds = news; + std::getline(in_stream, news, '\n'); + } + return (olds == " -1"); + } };