1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #include "Reader.h"
- #include "Text.h"
- using namespace Framework;
- ByteArrayReader::ByteArrayReader(
- const char* buffer, int length, bool deleteBuffer)
- : ReferenceCounter(),
- length(length),
- buffer(buffer),
- deleteBuffer(deleteBuffer),
- position(0)
- {}
- ByteArrayReader::~ByteArrayReader()
- {
- if (deleteBuffer) delete[] buffer;
- }
- void ByteArrayReader::lese(char* bytes, int len)
- {
- if (position < length)
- memcpy(bytes, buffer + position, min(len, length - position));
- position = min(position + len, length);
- }
- Text* ByteArrayReader::leseZeile()
- {
- if (position >= length) return 0;
- int start = position;
- for (; buffer[position] != '\n' && position < length; position++)
- ;
- Text* ret = new Text("");
- ret->fillText('\0', position - start + 1);
- lese((char*)ret->getText(), position - start + 1);
- return ret;
- }
- bool ByteArrayReader::istEnde() const
- {
- return position >= length;
- }
- void ByteArrayReader::setLPosition(__int64 pos, bool ende)
- {
- position = ende ? max(length - (int)pos, 0) : min((int)pos, length);
- }
- __int64 ByteArrayReader::getLPosition() const
- {
- return position;
- }
- __int64 ByteArrayReader::getSize() const
- {
- return length;
- }
|