BALL  1.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Protected Attributes
BALL::LineBasedFile Class Reference

#include <BALL/FORMAT/lineBasedFile.h>

Inheritance diagram for BALL::LineBasedFile:
BALL::File BALL::GenericMolFile BALL::JCAMPFile BALL::SCWRLRotamerFile BALL::AntechamberFile BALL::GAMESSDatFile BALL::GAMESSLogFile BALL::HINFile BALL::KCFFile BALL::MOL2File BALL::MOLFile BALL::PDBFile BALL::XYZFile

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

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::FileNotFoundif the file could not be opened

Member Function Documentation

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

Clear method.

Reimplemented from BALL::File.

Reimplemented in BALL::PDBFile.

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

Return the current line.

Return the current line.

Get the last line number in the file.

Go to a given line.

Returns:
false if EOF occurs
Exceptions:
Exception::ParseErrorif 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::FileNotFoundif 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!).

Reads a line and counts the line number.

Returns:
true if a line could be read, false if End Of File.
Exceptions:
Exception::ParseErrorif a syntax error was encountered

Rewind file to start

Exceptions:
Exception::ParseErrorif a syntax error was encountered
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_startif set to true, the current line is reset to its value prior to the invocation
Returns:
true if line could be found
Exceptions:
Exception::ParseErrorif a syntax error was encountered
bool BALL::LineBasedFile::search ( const String text,
const String stop,
bool  return_to_start = false 
)

Skip a given number of lines.

Returns:
false, if EOF occurs.
Exceptions:
Exception::ParseErrorif 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:
fileshould be used for __FILE__
lineshould be used for __LINE__
conditionto be tested
msgthis string is used as message in the exception
Exceptions:
Exception::ParseErrorif condition is not fulfilled

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