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 26 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 &fil) | |
Constructor for opening a file. More... | |
void | open (const std::string &fil) |
Open a file (an alternative to the constructor with a file name) 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::ifstream | m_in |
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 30 of file CTextFileLinesParser.h.
CTextFileLinesParser::CTextFileLinesParser | ( | const std::string & | fil | ) |
Constructor for opening a file.
std::exception | On error opening file |
Definition at line 20 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 36 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 84 of file CTextFileLinesParser.cpp.
size_t CTextFileLinesParser::getCurrentLineNumber | ( | ) | const |
Return the line number of the last line returned with getNextLine.
Definition at line 79 of file CTextFileLinesParser.cpp.
Referenced by mrpt::graphs::detail::graph_ops< graph_t >::load_graph_of_poses_from_text_file().
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 57 of file CTextFileLinesParser.cpp.
References mrpt::system::strStarts(), and mrpt::system::trim().
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 44 of file CTextFileLinesParser.cpp.
Referenced by mrpt::graphs::detail::graph_ops< graph_t >::load_graph_of_poses_from_text_file().
void CTextFileLinesParser::open | ( | const std::string & | fil | ) |
Open a file (an alternative to the constructor with a file name)
Definition at line 25 of file CTextFileLinesParser.cpp.
References THROW_EXCEPTION_FMT.
void CTextFileLinesParser::rewind | ( | ) |
Reset the read pointer to the beginning of the file.
Definition at line 37 of file CTextFileLinesParser.cpp.
Referenced by mrpt::graphs::detail::graph_ops< graph_t >::load_graph_of_poses_from_text_file().
|
private |
Definition at line 68 of file CTextFileLinesParser.h.
|
private |
Definition at line 66 of file CTextFileLinesParser.h.
|
private |
Definition at line 70 of file CTextFileLinesParser.h.
|
private |
Definition at line 69 of file CTextFileLinesParser.h.
|
private |
Definition at line 71 of file CTextFileLinesParser.h.
|
private |
Definition at line 67 of file CTextFileLinesParser.h.
Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST |