#include <BALL/FORMAT/lineBasedFile.h>
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) | |
| LineBasedFile (const LineBasedFile &f) throw (Exception::FileNotFound) | |
| void | clear () |
Equality operators | |
| bool | operator== (const LineBasedFile &f) |
| bool | operator!= (const LineBasedFile &f) |
Assignment | |
| const LineBasedFile & | operator= (const LineBasedFile &file) throw (Exception::FileNotFound) |
Accessors | |
| Position | getLineNumber () const |
Get the last line number in the file. | |
| const String & | getLine () const |
Return the current line. | |
| String & | getLine () |
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 "es="", 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_ |
A class for the convenient parsing of line-based file formats.
| 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.
| trim_whitespaces | - sets wheter leading and trailing whitespaces shall be removed while reading the file Open the given file. |
| BALL::LineBasedFile::LineBasedFile | ( | const LineBasedFile & | f | ) | throw (Exception::FileNotFound) |
Copy constructor The file is opened and the same position in it is seeked.
| void BALL::LineBasedFile::clear | ( | ) | [virtual] |
| 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.
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.
| 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).
| return_to_start | if set to true, the current line is reset to its value prior to the invocation |
| bool BALL::LineBasedFile::skipLines | ( | Size | number = 1 |
) | throw (Exception::ParseError) |
Skip a given number of lines.
Test if the current line starts with text.
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}
| 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 |
| ParseError | if condition is not fulfilled |
| bool BALL::LineBasedFile::trimWhiteSpacesEnabled | ( | ) | const |
String BALL::LineBasedFile::line_ [protected] |
buffer for the line in use
Reimplemented in BALL::MOL2File.
Position BALL::LineBasedFile::line_number_ [protected] |
line number in the file
bool BALL::LineBasedFile::trim_whitespaces_ [protected] |