Ramfile::readline()

This commit is contained in:
David Rose 2002-10-17 04:37:23 +00:00
parent 045f29ee3a
commit eff0d77e07
3 changed files with 34 additions and 1 deletions

View File

@ -33,4 +33,5 @@ get_length(void) const {
////////////////////////////////////////////////////////////////////
INLINE Ramfile::
Ramfile(void) {
_pos = 0;
}

View File

@ -41,3 +41,32 @@ Buffer::
~Buffer() {
delete _buffer;
}
////////////////////////////////////////////////////////////////////
// Function: Ramfile::readline
// Access: Published
// Description: Assumes the stream represents a text file, and
// extracts one line up to and including the trailing
// newline character. Returns empty string when the end
// of file is reached.
//
// The interface here is intentionally designed to be
// similar to that for Python's File.readline()
// function.
////////////////////////////////////////////////////////////////////
string Ramfile::
readline() {
size_t start = _pos;
while (_pos < _data.length() && _data[_pos] != '\n') {
++_pos;
}
if (_pos < _data.length() && _data[_pos] == '\n') {
// Include the newline character also.
++_pos;
}
return _data.substr(start, _pos - start);
}

View File

@ -52,9 +52,12 @@ private:
////////////////////////////////////////////////////////////////////
class EXPCL_PANDAEXPRESS Ramfile {
PUBLISHED:
INLINE Ramfile(void);
INLINE Ramfile();
string readline();
public:
size_t _pos;
string _data;
};