-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdictionery.cpp
76 lines (74 loc) · 1.61 KB
/
dictionery.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include "dictionery.h"
#include <utility>
#include <map>
Dictionery::Dictionery()
{
}
void Dictionery::addWord(QString word, QString translate)
{
_words.insert(word, translate);
}
QString Dictionery::getENGWord(QString word)
{
return _words.key(word);
}
QString Dictionery::getUkrWord(QString word)
{
return _words.value(word);
}
int Dictionery::getSize()
{
return _words.size();
}
QPair<QString,QString> Dictionery::getRandomPair()
{
int temp = rand() % _words.size();
QMap<QString,QString>::Iterator iter = _words.begin();
return QPair<QString,QString>((iter+temp).key(),(iter+temp).value());
}
void Dictionery::clear()
{
_words.clear();
}
QMap<QString, QString>::Iterator Dictionery::begin()
{
return _words.begin();
}
QMap<QString, QString>::Iterator Dictionery::end()
{
return _words.end();
}
void Dictionery::saveToFile(QTextStream& textStream)
{
QMap<QString,QString>::Iterator iter = _words.begin();
while (iter!=_words.end())
{
textStream<<iter.key()<<"\t"<<iter.value();
textStream<<"\r\n";
++iter;
}
}
bool Dictionery::fillDictionery(QFile& file)
{
QString line;
if(file.isReadable())
{
QTextStream inStream(&file);
do
{
line = inStream.readLine();
if(!line.isEmpty())
{
QString word1 = line.section("\t",0,0),
word2 = line.section("\t",1,1);
addWord(word1,word2);
}
}while(!line.isNull());
return true;
}
return false;
}
void Dictionery::deleteWord(QString& key)
{
_words.remove(key);
}