SparrowBot/app/riddles.cpp
2015-08-21 17:10:16 +02:00

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;
}