1 #include "UncompressedReader.h"
5 UncompressedReader::UncompressedReader(QObject *parent) :
6 StarDictReader(parent) {
11 UncompressedReader::UncompressedReader(QString filename, QObject *parent) :
12 StarDictReader(parent) {
17 UncompressedReader::~UncompressedReader() {
23 bool UncompressedReader::open(QString file) {
24 _file.setFileName(file);
25 _stream.setDevice(&_file);
26 return _file.open(QFile::ReadOnly);
30 void UncompressedReader::close() {
35 QChar UncompressedReader::readChar() {
39 _stream.readRawData(c,1);
40 if(((unsigned char)c[0])>240)
41 _stream.readRawData(c+1,3);
42 else if(((unsigned char)c[0])>224)
43 _stream.readRawData(c+1,2);
44 else if(((unsigned char)c[0])>192)
45 _stream.readRawData(c+1,1);
46 else if(((unsigned char)c[0])>127)
47 qDebug()<<"error - starDict - read wordList from UTF-8";
50 /* if(((unsigned char)c[0])>127){
51 _stream.readRawData(c+1,1);
52 if(((unsigned char)c[1])>127 && ((unsigned char)c[1])<192){
53 _stream.readRawData(c+2,1);
54 if(((unsigned char)c[2])>127 && ((unsigned char)c[2])<192)
55 _stream.readRawData(c+3,1);
59 cha=QString::fromUtf8(c);
65 QString UncompressedReader::readKeyword() {
78 QByteArray UncompressedReader::readString(qint64 offset, qint32 len) {
83 _stream.readRawData(buf, len);
85 QByteArray result(buf, len);
91 qint32 UncompressedReader::readInt32BigEndian() {
92 _stream.setByteOrder(QDataStream::BigEndian);
95 _stream.setByteOrder(QDataStream::LittleEndian);
100 qint64 UncompressedReader::readInt64BigEndian() {
101 _stream.setByteOrder(QDataStream::BigEndian);
104 _stream.setByteOrder(QDataStream::LittleEndian);