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)
void clear ()
Equality operators

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

const LineBasedFileoperator= (const LineBasedFile &file)
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 ()
bool skipLines (Size number=1)
bool search (const String &text, bool return_to_start=false)
bool search (const String &text, const String &stop, bool return_to_start=false)
bool gotoLine (Position line_number)
void rewind ()
void test (const char *file, int line, bool condition, const String &msg) const
String getField (Index pos=0, const String &quotes="", const String &delimiters=String::CHARACTER_CLASS__WHITESPACE) const
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 
)

Detailed constuctor. Open the given file.

Parameters:
trim_whitespaces - sets wheter leading and trailing whitespaces shall be removed while reading the file
Exceptions:
Exception::FileNotFound if the file could not be opened

Member Function Documentation

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

Clear method.

Reimplemented from BALL::File.

Reimplemented in 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

Function to get a field surrounded by delimiter

See also:
String::getField
String::getFieldQuoted
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  ) 

Go to a given line.

Returns:
false if EOF occurs
Exceptions:
Exception::ParseError if a syntax error was encountered
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  ) 

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

Exceptions:
Exception::FileNotFound if the file could not be opened
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 (  ) 

Reads a line and counts the line number.

Returns:
true if a line could be read, false if End Of File.
Exceptions:
Exception::ParseError if a syntax error was encountered
void BALL::LineBasedFile::rewind (  ) 

Rewind file to start

Exceptions:
Exception::ParseError if a syntax error was encountered
bool BALL::LineBasedFile::search ( const String text,
const String stop,
bool  return_to_start = false 
)
bool BALL::LineBasedFile::search ( const String text,
bool  return_to_start = false 
)

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
Exceptions:
Exception::ParseError if a syntax error was encountered
bool BALL::LineBasedFile::skipLines ( Size  number = 1  ) 

Skip a given number of lines.

Returns:
false, if EOF occurs.
Exceptions:
Exception::ParseError if a syntax error was encountered
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

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:
Exception::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.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Generated by  doxygen 1.6.3