MRPT
1.9.9
|
A class for parsing text files, returning each non-empty and non-comment line, along its line number.
Lines are strip out of leading and trailing whitespaces. By default, lines starting with either "#", "//" or "%" are skipped as comment lines, unless this behavior is explicitly disabled with enableCommentFilters.
Definition at line 24 of file CTextFileLinesParser.h.
#include <mrpt/io/CTextFileLinesParser.h>
Public Member Functions | |
CTextFileLinesParser () | |
Default constructor; should call open() at some moment later. More... | |
CTextFileLinesParser (const std::string &filename) | |
Constructor for opening a file. More... | |
CTextFileLinesParser (std::istream &in) | |
Constructor for reading from a generic std::istream. More... | |
void | open (const std::string &fil) |
Open a file (an alternative to the constructor with a file name) More... | |
void | open (std::istream &in) |
Opens for reading a generic std::istream. More... | |
void | close () |
Close the file (no need to call it normally, the file is closed upon destruction) More... | |
void | rewind () |
Reset the read pointer to the beginning of the file. More... | |
bool | getNextLine (std::string &out_str) |
Reads from the file and return the next (non-comment) line, as a std::string. More... | |
bool | getNextLine (std::istringstream &buf) |
Reads from the file and stores the next (non-comment) line into the given stream buffer. More... | |
size_t | getCurrentLineNumber () const |
Return the line number of the last line returned with getNextLine. More... | |
void | enableCommentFilters (bool filter_MATLAB_comments, bool filter_C_comments, bool filter_SH_comments) |
Enable/disable filtering of lines starting with "%", "//" or "#", respectively. More... | |
Private Attributes | |
std::string | m_fileName |
std::istream * | m_in { nullptr } |
bool | m_in_ownership { true } |
size_t | m_curLineNum {0} |
bool | m_filter_MATLAB_comments {true} |
bool | m_filter_C_comments {true} |
bool | m_filter_SH_comments {true} |
|
inline |
Default constructor; should call open() at some moment later.
Definition at line 28 of file CTextFileLinesParser.h.
|
explicit |
Constructor for opening a file.
std::exception | On error opening file |
Definition at line 20 of file CTextFileLinesParser.cpp.
|
explicit |
Constructor for reading from a generic std::istream.
Note that a reference to the stream is stored in the object, so it's the user responsibility to make sure the stream is not destroyed before than this object.
Definition at line 25 of file CTextFileLinesParser.cpp.
void CTextFileLinesParser::close | ( | ) |
Close the file (no need to call it normally, the file is closed upon destruction)
Definition at line 50 of file CTextFileLinesParser.cpp.
void CTextFileLinesParser::enableCommentFilters | ( | bool | filter_MATLAB_comments, |
bool | filter_C_comments, | ||
bool | filter_SH_comments | ||
) |
Enable/disable filtering of lines starting with "%", "//" or "#", respectively.
Definition at line 103 of file CTextFileLinesParser.cpp.
size_t CTextFileLinesParser::getCurrentLineNumber | ( | ) | const |
Return the line number of the last line returned with getNextLine.
Definition at line 98 of file CTextFileLinesParser.cpp.
Referenced by mrpt::graphs::detail::graph_ops< graph_t >::load_graph_of_poses_from_text_stream().
bool CTextFileLinesParser::getNextLine | ( | std::string & | out_str | ) |
Reads from the file and return the next (non-comment) line, as a std::string.
Definition at line 63 of file CTextFileLinesParser.cpp.
Referenced by mrpt::graphs::detail::graph_ops< graph_t >::load_graph_of_poses_from_text_stream().
bool CTextFileLinesParser::getNextLine | ( | std::istringstream & | buf | ) |
Reads from the file and stores the next (non-comment) line into the given stream buffer.
Definition at line 75 of file CTextFileLinesParser.cpp.
References ASSERT_, mrpt::system::strStarts(), and mrpt::system::trim().
void CTextFileLinesParser::open | ( | const std::string & | fil | ) |
Open a file (an alternative to the constructor with a file name)
Definition at line 36 of file CTextFileLinesParser.cpp.
References THROW_EXCEPTION_FMT.
void CTextFileLinesParser::open | ( | std::istream & | in | ) |
Opens for reading a generic std::istream.
Note that a reference to the stream is stored in the object, so it's the user responsibility to make sure the stream is not destroyed before than this object.
Definition at line 27 of file CTextFileLinesParser.cpp.
void CTextFileLinesParser::rewind | ( | ) |
Reset the read pointer to the beginning of the file.
Definition at line 56 of file CTextFileLinesParser.cpp.
Referenced by mrpt::graphs::detail::graph_ops< graph_t >::load_graph_of_poses_from_text_stream().
|
private |
Definition at line 81 of file CTextFileLinesParser.h.
|
private |
Definition at line 78 of file CTextFileLinesParser.h.
|
private |
Definition at line 83 of file CTextFileLinesParser.h.
|
private |
Definition at line 82 of file CTextFileLinesParser.h.
|
private |
Definition at line 84 of file CTextFileLinesParser.h.
|
private |
Definition at line 79 of file CTextFileLinesParser.h.
|
private |
Definition at line 80 of file CTextFileLinesParser.h.
Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 7d5e6d718 Fri Aug 24 01:51:28 2018 +0200 at lun nov 2 08:35:50 CET 2020 |