BALL
1.4.79
|
#include <BALL/FORMAT/lineBasedFile.h>
Public Member Functions | |
Constructors and Destructors | |
LineBasedFile () | |
Default constructor. More... | |
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 LineBasedFile & | operator= (const LineBasedFile &file) |
Accessors | |
Position | getLineNumber () const |
Get the last line number in the file. More... | |
const String & | getLine () const |
Return the current line. More... | |
String & | getLine () |
Return the current line. More... | |
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 "es="", const String &delimiters=String::CHARACTER_CLASS__WHITESPACE) const |
bool | startsWith (const String &text) const |
Test if the current line starts with text. More... | |
bool | has (const String &text) const |
Return true if the current line contains text. More... | |
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. More... | |
bool | trimWhiteSpacesEnabled () const |
Public Member Functions inherited from BALL::File | |
File () | |
File (const String &name, OpenMode open_mode=std::ios::in) | |
virtual | ~File () |
bool | isValid () const |
bool | open (const String &name, File::OpenMode open_mode=std::ios::in) |
bool | reopen () |
bool | reopen (File::OpenMode open_mode) |
void | close () |
const String & | getName () const |
void | setName (const String &name) |
const String & | getOriginalName () const |
Size | getSize () |
File::OpenMode | getOpenMode () const |
Type | getType (bool trace_link) const |
bool | copyTo (const String &destination_name, Size buffer_size=4096) |
bool | moveTo (const String &destination_name) |
bool | remove () |
bool | renameTo (const String &new_path) |
bool | truncate (Size size=0) |
std::fstream & | getFileStream () |
TransformationManager & | getTransformationManager () |
const TransformationManager & | getTransformationManager () const |
bool | operator== (const File &file) const |
bool | operator!= (const File &file) const |
bool | isOpen () const |
bool | isClosed () const |
bool | isAccessible () const |
bool | isCanonized () const |
bool | isReadable () const |
bool | isWritable () const |
bool | isExecutable () const |
Protected Attributes | |
String | line_ |
buffer for the line in use More... | |
Position | line_number_ |
line number in the file More... | |
bool | trim_whitespaces_ |
vector< char > | col_buffer_ |
buffer for column parsing More... | |
Protected Attributes inherited from BALL::File | |
String | name_ |
String | original_name_ |
OpenMode | open_mode_ |
bool | is_open_ |
bool | is_temporary_ |
Additional Inherited Members | |
Public Types inherited from BALL::File | |
typedef std::ios::openmode | OpenMode |
enum | Transformation { TRANSFORMATION__EXEC = 1, TRANSFORMATION__FILTER = 2, TRANSFORMATION__URL = 3 } |
enum | Type { TYPE__UNKNOWN = 0, TYPE__DIRECTORY = 1, TYPE__CHAR_SPECIAL_FILE = 2, TYPE__BLOCK_SPECIAL_FILE = 3, TYPE__REGULAR_FILE = 4, TYPE__SYMBOLIC_LINK = 5, TYPE__SOCKET = 6, TYPE__FIFO_SPECIAL_FILE = 7 } |
Static Public Member Functions inherited from BALL::File | |
static Size | getSize (String name) |
static Type | getType (String name, bool trace_link) |
static bool | copy (String source_name, String destination_name, Size buffer_size=4096) |
static bool | move (const String &source_name, const String &destination_name) |
static bool | remove (String name) |
static bool | rename (String old_path, String new_path) |
static bool | truncate (String path, Size size=0) |
static bool | createTemporaryFilename (String &temporary, const String &suffix=".TMP") |
static void | enableTransformation (Transformation transformation) |
static void | disableTransformation (Transformation transformation) |
static bool | isTransformationEnabled (Transformation transformation) |
static void | registerTransformation (const String &pattern, const String &exec) |
static void | unregisterTransformation (const String &pattern) |
static bool | isAccessible (String name) |
static bool | isReadable (String name) |
static bool | isWritable (String name) |
static bool | isExecutable (String name) |
Static Public Attributes inherited from BALL::File | |
static const OpenMode | MODE_IN |
Open for input (default) More... | |
static const OpenMode | MODE_OUT |
Open for output. More... | |
static const OpenMode | MODE_APP |
Append. Seek to end before each write operation. More... | |
static const OpenMode | MODE_BINARY |
Binary mode. More... | |
static const OpenMode | MODE_ATE |
Seek to end directly after opening. More... | |
static const OpenMode | MODE_TRUNC |
Truncate an existing file. More... | |
static const String | TRANSFORMATION_EXEC_PREFIX |
Prefix for filenames that are created through the execution of commands "exec:". More... | |
static const String | TRANSFORMATION_FILE_PREFIX |
Prefix for files (to mimick URL-like behavior) "file:". More... | |
static const String | TRANSFORMATION_FTP_PREFIX |
Prefix for FTP-transfers "ftp://". More... | |
static const String | TRANSFORMATION_HTTP_PREFIX |
Prefix for HTTP-transfer "http://". More... | |
Static Protected Attributes inherited from BALL::File | |
static HashSet< String > | created_temp_filenames_ |
static TransformationManager | transformation_manager_ |
static Size | transformation_methods_ |
A class for the convenient parsing of line-based file formats.
Definition at line 20 of file lineBasedFile.h.
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.
trim_whitespaces | - sets wheter leading and trailing whitespaces shall be removed while reading the file |
Exception::FileNotFound | if the file could not be opened |
|
virtual |
Clear method.
Reimplemented from BALL::File.
Reimplemented in BALL::PDBFile, and BALL::MOPACOutputFile.
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
const String& BALL::LineBasedFile::getLine | ( | ) | const |
Return the current line.
String& BALL::LineBasedFile::getLine | ( | ) |
Return the current line.
Position BALL::LineBasedFile::getLineNumber | ( | ) | const |
Get the last line number in the file.
Go to a given line.
Exception::ParseError | if a syntax error was encountered |
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.
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.
Exception::ParseError | if a syntax error was encountered |
void BALL::LineBasedFile::rewind | ( | ) |
Rewind file to start
Exception::ParseError | if a syntax error was encountered |
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 |
Exception::ParseError | if 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.
Exception::ParseError | if a syntax error was encountered |
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 |
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 |
Exception::ParseError | if condition is not fulfilled |
bool BALL::LineBasedFile::trimWhiteSpacesEnabled | ( | ) | const |
|
protected |
buffer for column parsing
Definition at line 181 of file lineBasedFile.h.
|
protected |
buffer for the line in use
Definition at line 173 of file lineBasedFile.h.
|
protected |
line number in the file
Definition at line 176 of file lineBasedFile.h.
|
protected |
Definition at line 178 of file lineBasedFile.h.