1 #include "UncompressedReader.h"
4 UncompressedReader::UncompressedReader(QObject *parent) :
5 StarDictReader(parent) {
9 UncompressedReader::UncompressedReader(QString filename, QObject *parent) :
10 StarDictReader(parent) {
14 UncompressedReader::~UncompressedReader() {
19 bool UncompressedReader::open(QString file) {
20 _file.setFileName(file);
21 _stream.setDevice(&_file);
22 return _file.open(QFile::ReadOnly);
25 void UncompressedReader::close() {
29 QChar UncompressedReader::readChar() {
33 _stream.readRawData(c,1);
34 if(((unsigned char)c[0])>127){
35 _stream.readRawData(c+1,1);
36 if(((unsigned char)c[1])>127 && ((unsigned char)c[1])<192){
37 _stream.readRawData(c+2,1);
38 if(((unsigned char)c[2])>127 && ((unsigned char)c[2])<192)
39 _stream.readRawData(c+3,1);
43 cha=QString::fromUtf8(c);
47 QString UncompressedReader::readKeyword() {
61 QByteArray UncompressedReader::readString(qint64 offset, qint32 len) {
66 _stream.readRawData(buf, len);
68 QByteArray result(buf, len);
73 qint32 UncompressedReader::readInt32BigEndian() {
74 _stream.setByteOrder(QDataStream::BigEndian);
77 _stream.setByteOrder(QDataStream::LittleEndian);
81 qint64 UncompressedReader::readInt64BigEndian() {
82 _stream.setByteOrder(QDataStream::BigEndian);
85 _stream.setByteOrder(QDataStream::LittleEndian);