Additional fix for bug PAL13701(EDF 319 SMESH : Export UNV failed with not enough space disk --> No user information).

This commit is contained in:
mzn 2006-12-06 14:40:44 +00:00
parent 2322b79c1a
commit a3c6d051d0
2 changed files with 25 additions and 0 deletions

View File

@ -35,6 +35,7 @@
#include "UNV_Utilities.hxx"
using namespace std;
using namespace UNV;
namespace{
typedef std::vector<size_t> 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"<<exc.what());

View File

@ -22,6 +22,7 @@
#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
#include <stdexcept>
#include <cassert>
@ -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");
}
};