#include "riddles.h" #include #include #include Riddles::Riddles(QString filenameRiddles, QString filenameAnswers) { QFile fileRiddles(filenameRiddles); if(!fileRiddles.exists()) std::cerr << "can't find " << filenameRiddles.toStdString() << std::endl; else if(fileRiddles.open(QIODevice::ReadOnly | QIODevice::Text)) { std::cerr << "file is open" << std::endl; QTextStream stream(&fileRiddles); stream.setCodec("UTF-8"); int current = 0; riddles.push_back(QStringList()); for(QString line = stream.readLine(512); line != QString::null; line = stream.readLine(512)) { if(line.isEmpty()) { riddles.push_back(QStringList()); ++current; } else { riddles[current].push_back(line); } } fileRiddles.close(); } QFile fileAnswers(filenameAnswers); if(!fileAnswers.exists()) std::cerr << "can't find " << filenameAnswers.toStdString() << std::endl; else if(fileAnswers.open(QIODevice::ReadOnly | QIODevice::Text)) { std::cerr << "file is open" << std::endl; QTextStream stream(&fileAnswers); stream.setCodec("UTF-8"); for(QString line = stream.readLine(512); line != QString::null; line = stream.readLine(512)) { if(!line.isEmpty()) { answers.push_back(line); } } fileAnswers.close(); } count = std::min(riddles.size(), answers.size()); } QStringList Riddles::getRiddle(int i) { if(i >= 0 && i < count) return riddles[i]; else return QStringList(); } QString Riddles::getAnswer(int i) { if(i >= 0 && i < count) return answers[i]; else return QString(); } int Riddles::getNbRiddles() { return count; }