You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdeedu/kvoctrain/kvoctrain/kvt-core/kvd_voc.cpp

142 lines
3.4 KiB

/***************************************************************************
maintain a document in Vokabletrainer format
-----------------------------------------------------------------------
begin : Wed Jun 15 19:32:00 PDT 2005
copyright : (C) 2005 Peter Hedlund <peter.hedlund@kdemail.net>
-----------------------------------------------------------------------
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#include <tdelocale.h>
#include <tdeapplication.h>
#include <tdemessagebox.h>
#include <kdebug.h>
#include "kvoctraindoc.h"
#include "kvoctraincore.h"
bool kvoctrainDoc::loadFromVoc(TQTextStream& is)
{
author = "http://www.vokabeln.de"; //DO NOT translate
langs.clear();
vocabulary.clear();
lesson_descr.clear();
TQString title,
lang1,
lang2,
expression,
original,
translation,
lessonDescr,
temp;
int i,
wordCount,
lesson;
int lines = 10000;
TQStringList titles,
languages,
words;
bool keepGoing = true;
while (keepGoing)
{
temp = is.readLine();
keepGoing = !(temp.find("\",") > 0);
title.append(temp);
if (keepGoing)
title.append(" ");
}
titles = TQStringList::split("\",", title);
doctitle = titles[0].mid(1);
wordCount = titles[1].section(',', 0, 0).toInt();
is.readLine();
is.readLine();
lang1 = is.readLine();
languages = TQStringList::split("\",", lang1);
langs.push_back(languages[0].mid(1));
langs.push_back(languages[1].mid(1));
keepGoing = true;
while (keepGoing)
keepGoing = !(is.readLine().find("8. Lernhilfe") > 0); //DO NOT translate
for (i = 0; i <= 14; i++)
is.readLine();
for (i = 0; i < wordCount - 1; i++)
{
int c = 0;
expression.setLength(0);
while (c < 2)
{
temp = is.readLine();
c+= temp.contains("\",");
expression.append(temp);
if (c < 2)
expression.append(" ");
}
words = TQStringList::split("\",", expression);
original = words[0].mid(1);
translation = words[1].mid(1);
lesson = words[2].toInt();
kvoctrainExpr kve;
kve.setOriginal(original);
kve.setGrade(1, 0, false);
kve.setGrade(1, 0, true);
kve.setLesson(lesson);
kve.addTranslation(translation);
vocabulary.push_back(kve);
is.readLine();
is.readLine();
}
is.readLine();
is.readLine();
is.readLine();
for (int i = 0; !is.eof() && i < lines; i++)
{
lessonDescr = is.readLine();
lessonDescr = lessonDescr.mid(1, lessonDescr.length() - 2);
if (!lessonDescr.isEmpty())
lesson_descr.push_back(lessonDescr);
else
break;
is.readLine();
}
setModified(false);
doc_url.setFileName(i18n("Untitled"));
return is.device()->status() == IO_Ok;
}