From 83219fd4b25611d25e7c934c49fc86259ea0e38d Mon Sep 17 00:00:00 2001 From: eap Date: Mon, 23 Jan 2012 08:00:37 +0000 Subject: [PATCH] 0021198: EDF 1548 GEOM: Writing of coordinates system into exported UNV files + inline std::string read_line(std::ifstream& in_stream, const bool next=true) --- src/DriverUNV/UNV_Utilities.hxx | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/DriverUNV/UNV_Utilities.hxx b/src/DriverUNV/UNV_Utilities.hxx index 5cafa8c5d..107808321 100644 --- a/src/DriverUNV/UNV_Utilities.hxx +++ b/src/DriverUNV/UNV_Utilities.hxx @@ -36,6 +36,8 @@ namespace UNV{ using namespace std; + const size_t theMaxLineLen = 80; + class MESHDRIVERUNV_EXPORT PrefixPrinter{ static int myCounter; public: @@ -57,6 +59,7 @@ namespace UNV{ std::string olds, news; + in_file.seekg(0); while(true){ in_file >> olds >> news; /* @@ -68,7 +71,10 @@ namespace UNV{ in_file >> news; } if(in_file.eof()) + { + in_file.clear(); return false; + } if (news == ds_name) return true; } @@ -113,6 +119,25 @@ namespace UNV{ return (olds == " -1"); } + /*! + * \brief reads a whole line + * \param in_stream - source stream + * \param next - if true, first reads the current line up to the end + * which is necessary after reading using >> operator + * \retval std::string - the result line + */ + inline std::string read_line(std::ifstream& in_stream, const bool next=true) + { + char line[theMaxLineLen]; + in_stream.getline( line, theMaxLineLen ); + if ( next ) + in_stream.getline( line, theMaxLineLen ); + + std::string resLine = line; + if ( resLine.size() > 0 && resLine[ resLine.size()-1 ] == '\r' ) + resLine.resize( resLine.size()-1 ); + return line; + } }; -- 2.39.2