BALL::LineBasedFile Class Reference
[General Purpose File Formats]

#include <BALL/FORMAT/lineBasedFile.h>

Inheritance diagram for BALL::LineBasedFile:
Inheritance graph
[legend]

List of all members.

Public Member Functions

Constructors and Destructors

 LineBasedFile ()
 Default constructor.
 LineBasedFile (const String &filename, File::OpenMode open_mode=std::ios::in, bool trim_whitespaces=false) throw (Exception::FileNotFound)
void clear ()
Equality operators

bool operator== (const LineBasedFile &f)
bool operator!= (const LineBasedFile &f)
Assignment

const LineBasedFileoperator= (const LineBasedFile &file) throw (Exception::FileNotFound)
Accessors

Position getLineNumber () const
 Get the last line number in the file.
const StringgetLine () const
 Return the current line.
StringgetLine ()
 Return the current line.
Help-Methods for File Acces

bool readLine () throw (Exception::ParseError)
bool skipLines (Size number=1) throw (Exception::ParseError)
bool search (const String &text, bool return_to_start=false) throw (Exception::ParseError)
bool search (const String &text, const String &stop, bool return_to_start=false) throw (Exception::ParseError)
bool gotoLine (Position line_number) throw (Exception::ParseError)
void rewind () throw (Exception::ParseError)
void test (const char *file, int line, bool condition, const String &msg) const throw (Exception::ParseError)
String getField (Index pos=0, const String &quotes="", const String &delimiters=String::CHARACTER_CLASS__WHITESPACE) const throw (Exception::IndexUnderflow)
bool startsWith (const String &text) const
 Test if the current line starts with text.
bool has (const String &text) const
 Return true if the current line contains text.
Index switchString (const std::vector< String > &data) const
bool parseColumnFormat (const char *format, Position index, Size length, void *arg)
void enableTrimWhitespaces (bool state)
 Set wheter leading and trailing whitespaces in lines shall be removed.
bool trimWhiteSpacesEnabled () const

Protected Attributes

String line_
 buffer for the line in use
Position line_number_
 line number in the file
bool trim_whitespaces_

Detailed Description

A class for the convenient parsing of line-based file formats.

Definition at line 20 of file lineBasedFile.h.


Constructor & Destructor Documentation

BALL::LineBasedFile::LineBasedFile (  ) 

Default constructor.

BALL::LineBasedFile::LineBasedFile ( const String filename,
File::OpenMode  open_mode = std::ios::in,
bool  trim_whitespaces = false 
) throw (Exception::FileNotFound)

Detailed constuctor.

Parameters:
trim_whitespaces - sets wheter leading and trailing whitespaces shall be removed while reading the file Open the given file.

Member Function Documentation

void BALL::LineBasedFile::clear (  )  [virtual]

Clear method.

Reimplemented from BALL::File.

Reimplemented in BALL::NMRStarFile, BALL::NMRStarFile, BALL::NMRStarFile, BALL::NMRStarFile, and BALL::PDBFile.

void BALL::LineBasedFile::enableTrimWhitespaces ( bool  state  ) 

Set wheter leading and trailing whitespaces in lines shall be removed.

String BALL::LineBasedFile::getField ( Index  pos = 0,
const String quotes = "",
const String delimiters = String::CHARACTER_CLASS__WHITESPACE 
) const throw (Exception::IndexUnderflow)

Function to get a field surrounded by delimiter

String& BALL::LineBasedFile::getLine (  ) 

Return the current line.

const String& BALL::LineBasedFile::getLine (  )  const

Return the current line.

Position BALL::LineBasedFile::getLineNumber (  )  const

Get the last line number in the file.

bool BALL::LineBasedFile::gotoLine ( Position  line_number  )  throw (Exception::ParseError)

Go to a given line.

Returns:
false if EOF occurs
bool BALL::LineBasedFile::has ( const String text  )  const

Return true if the current line contains text.

bool BALL::LineBasedFile::operator!= ( const LineBasedFile f  ) 

Inequality operator

const LineBasedFile& BALL::LineBasedFile::operator= ( const LineBasedFile file  )  throw (Exception::FileNotFound)

Assignment operator. The file is opened and the same position in it is seeked.

bool BALL::LineBasedFile::operator== ( const LineBasedFile f  ) 

Equality operator

bool BALL::LineBasedFile::parseColumnFormat ( const char *  format,
Position  index,
Size  length,
void *  arg 
)

Parse column based formats. Copy the subsection of the current line defined by index and length into a buffer try to parse it using sscanf. The result is stored in arg (use with caution: no type checking!).

bool BALL::LineBasedFile::readLine (  )  throw (Exception::ParseError)

Reads a line and counts the line number.

Returns:
true if a line could be read, false if End Of File.
void BALL::LineBasedFile::rewind (  )  throw (Exception::ParseError)

Rewind file to start

bool BALL::LineBasedFile::search ( const String text,
const String stop,
bool  return_to_start = false 
) throw (Exception::ParseError)
bool BALL::LineBasedFile::search ( const String text,
bool  return_to_start = false 
) throw (Exception::ParseError)

Search for a line starting with a given string. Search starts at the current line and ends at the end of the file (no wrap around).

Parameters:
return_to_start if set to true, the current line is reset to its value prior to the invocation
Returns:
true if line could be found
bool BALL::LineBasedFile::skipLines ( Size  number = 1  )  throw (Exception::ParseError)

Skip a given number of lines.

Returns:
false, if EOF occurs.
bool BALL::LineBasedFile::startsWith ( const String text  )  const

Test if the current line starts with text.

Index BALL::LineBasedFile::switchString ( const std::vector< String > &  data  )  const

Switch method of the current line. Return the position of the current line in data or -1 if it does not exist.

void BALL::LineBasedFile::test ( const char *  file,
int  line,
bool  condition,
const String msg 
) const throw (Exception::ParseError)

Test for a condition. Throw an exception if a given condition is not met. {verbatim} abort(__FILE__, __LINE__, shift_reference->elements.size() > 0, "no data for shift references found"); {verbatim}

Parameters:
file should be used for __FILE__
line should be used for __LINE__
condition to be tested
msg this string is used as message in the exception
Exceptions:
ParseError if condition is not fulfilled
bool BALL::LineBasedFile::trimWhiteSpacesEnabled (  )  const

Member Data Documentation

buffer for the line in use

Reimplemented in BALL::MOL2File.

Definition at line 173 of file lineBasedFile.h.

line number in the file

Definition at line 176 of file lineBasedFile.h.

Definition at line 178 of file lineBasedFile.h.

Generated by  doxygen 1.6.3