#include <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) | |
Detailed constuctor. |
|
LineBasedFile (const LineBasedFile &f) throw (Exception::FileNotFound) | |
Copy constructor The file is opened
and the same position in it is seeked. |
|
void | clear () |
Clear method. |
|
Equality operators
|
|
bool | operator== (const LineBasedFile &f) |
Equality operator. |
|
bool | operator!= (const LineBasedFile &f) |
Inequality operator. |
|
Assignment
|
|
const LineBasedFile & | operator= (const LineBasedFile &file) throw (Exception::FileNotFound) |
Assignment operator. |
|
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) |
Reads a line and counts the line
number. |
|
bool | skipLines (Size number=1) throw (Exception::ParseError) |
Skip a given number of lines.
|
|
bool | search (const String &text, bool return_to_start=false) throw (Exception::ParseError) |
Search for a line starting with a
given string. |
|
bool | search (const String &text, const String &stop, bool return_to_start=false) throw (Exception::ParseError) |
bool | gotoLine (Position line_number) throw (Exception::ParseError) |
Go to a given line. |
|
void | rewind () throw (Exception::ParseError) |
Rewind file to start. |
|
void | test (const char *file, int line, bool condition, const String &msg) const throw (Exception::ParseError) |
Test for a condition. |
|
String | getField (Index pos=0, const String "es="", const String &delimiters=String::CHARACTER_CLASS__WHITESPACE) const throw (Exception::IndexUnderflow) |
Function to get a field surrounded
by delimiter. |
|
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 |
Switch method of the current line.
|
|
bool | parseColumnFormat (const char *format, Position index, Size length, void *arg) |
Parse column based formats. |
|
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_ |
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. |
bool BALL::LineBasedFile::gotoLine | ( | Position | line_number | ) | throw (Exception::ParseError) |
Go to a given line.
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::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.
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.
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}
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 |