82 lines
1.9 KiB
C++
82 lines
1.9 KiB
C++
#include "riddles.h"
|
|
#include <QFile>
|
|
#include <QTextStream>
|
|
#include <iostream>
|
|
|
|
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;
|
|
}
|