38 std::ifstream local_InputStream;
39 local_InputStream.open( filename.c_str(), std::ios::in | std::ios::binary );
40 if( !local_InputStream )
45 local_InputStream.close();
66 std::ofstream local_OutputStream;
67 local_OutputStream.open( filename.c_str(), std::ios::out | std::ios::binary );
68 if( !local_OutputStream )
73 local_OutputStream.close();
80 const std::streampos FileStartPos = inputstream.tellg();
84 if(Key.find(this->GetHeaderBeginTag()) == std::string::npos )
87 inputstream.seekg( FileStartPos );
92 this->push_back(std::list< std::pair<std::string,std::string> >::
value_type(Key,
""));
95 std::streampos PreKeyReadPosition = inputstream.tellg();
101 if(inputstream.eof() ==
true)
103 itkGenericExceptionMacro(<<
"Unexpected end of file");
107 if ( Key.find(
"HEADER_BEGIN") != std::string::npos)
109 this->push_back(std::list< std::pair<std::string,std::string> >::
value_type(
"--BEGIN_CHILD--",
""));
111 inputstream.seekg( PreKeyReadPosition );
119 this->
m_Child.back()->ReadBrains2Header(inputstream);
120 PreKeyReadPosition = inputstream.tellg();
125 inputstream >> Value;
126 this->push_back(std::list< std::pair<std::string,std::string> >::
value_type(Key,Value));
128 PreKeyReadPosition = inputstream.tellg();
132 this->push_back(std::list< std::pair<std::string,std::string> >::
value_type(Key,
""));
141 std::list<Brains2HeaderBase *>::const_iterator childiterator=this->
m_Child.begin();
143 for(std::list< std::pair<std::string,std::string> >::const_iterator pi=this->begin();
144 pi != this->end(); pi++)
146 if(pi->first ==
"--BEGIN_CHILD--")
149 (*childiterator)->PrintSelf(os);
154 os << pi->first <<
" " << pi->second << std::endl;
160 std::list<Brains2HeaderBase *>::const_iterator childiterator=this->
m_Child.begin();
162 for(std::list< std::pair<std::string,std::string> >::const_iterator pi=this->begin();
163 pi != this->end(); pi++)
165 if(pi->first == KeyID)
169 else if(pi->first ==
"--BEGIN_CHILD--")
171 if((*childiterator)->DoesKeyExist(KeyID) ==
true)
187 std::list<Brains2HeaderBase *>::const_iterator childiterator=this->
m_Child.begin();
189 for(std::list< std::pair<std::string,std::string> >::const_iterator pi=this->begin();
190 pi != this->end(); pi++)
192 if(pi->first == KeyID)
196 else if(pi->first ==
"--BEGIN_CHILD--")
199 std::string TempStringValue=(*childiterator)->getString(KeyID);
200 if(TempStringValue.length() != 0)
202 return TempStringValue;
209 return std::string(
"");
214 std::string TempStringValue=this->
getString(KeyID);
215 if(TempStringValue.length() != 0)
217 return static_cast< float >( atof( TempStringValue.c_str() ) );
224 std::string TempStringValue=this->
getString(KeyID);
225 if( static_cast< int >( TempStringValue.length() ) != 0 )
227 return atoi(TempStringValue.c_str());