Code: Alles auswählen
QTime time;
time.start();
int i;
i = time.elapsed();
Code: Alles auswählen
QTime time;
time.start();
int i;
i = time.elapsed();
Code: Alles auswählen
TEIL * Auswertung::objekteFuellen( TEIL *anf_TEXT)
{
TEIL *anf_ABSATZ = new TEIL;
TEIL *anf_SATZ = new TEIL;
TEIL *anf_WORT = new TEIL;
TEIL *anf_BST = new TEIL;
unsigned long i_owb = 1;
QTime time;
time.start();
QString text = this->qs_text;
text.replace(". ", ".");
text.replace(".# ","#");
text.simplified();
QStringList l_absaetze = text.split("#",QString::SkipEmptyParts);
anf_TEXT->l_text = l_absaetze;
foreach(QString qs_absaetze, l_absaetze) {
qs_absaetze.trimmed();
QStringList l_saetze = qs_absaetze.split(".", QString::SkipEmptyParts);
this->absaetze.append(l_saetze);
foreach(QString qs_saetze, l_saetze){
qs_saetze.trimmed();
QStringList l_worte = qs_saetze.split(" ", QString::SkipEmptyParts);
foreach(QString qs_wort, l_worte){
qs_wort.trimmed();
for(int i = 0; i<qs_wort.length();i++){
QChar c_bst = qs_wort[i];
TEIL *BST = new TEIL;
i_owb = BST->kodieren(c_bst, i_owb);
anf_BST = BST->setNext(anf_BST, BST);
}
TEIL *WORT = new TEIL;
anf_BST->aufAddieren(WORT);
WORT->setFirst(WORT, anf_BST->next);
anf_WORT = WORT->setNext(anf_WORT, WORT);
WORT->setNULL(anf_BST);
}
TEIL *SATZ = new TEIL;
anf_WORT->aufAddieren(SATZ);
SATZ->setFirst(SATZ, anf_WORT->next);
anf_SATZ = SATZ->setNext(anf_SATZ, SATZ);
SATZ->setNULL(anf_WORT);
i_owb = 1;
}
TEIL *ABSATZ = new TEIL;
anf_SATZ->aufAddieren(ABSATZ);
ABSATZ->setFirst(ABSATZ, anf_SATZ->next);
anf_ABSATZ = ABSATZ->setNext(anf_ABSATZ, ABSATZ);
ABSATZ->setNULL(anf_SATZ);
}
anf_ABSATZ->aufAddieren(anf_TEXT);
anf_TEXT->setFirst(anf_TEXT, anf_ABSATZ->next);
int z;
z = time.elapsed();
qDebug()<<z;
qDebug("Daten kodiert: %dms", time.elapsed());
return (anf_TEXT);
}Windows macht bei der Zeit sehr grobe Rundungen, bzw. misst in zu groben Abständen... Es kann sein, dass die Berechnung zB 15 ms gedauert hat, dann werden aber trotzdem 0 ms angezeigt. Bei 16 ms oder mehr werden dann auch 16 ms angezeigt. Wetten du bekommst keine anderen werte als 16 oder 31 ms raus?24dan hat geschrieben: Also kann das sein das die gleiche Aufgabe mal im 16ms und dann wieder in weniger als 1 ms erledigt ist? Oder benutze ich QTime falsch. Ich bekomme selbt bei einer "längeren" Aufgabe (31ms) sowhl mal weniger als 1ms und dann wieder 31ms.
Der int Wert wird wohl richtig geschrieben.
Es muss mit QTime etwas nicht ganz funktionieren
Ausgabe des Programms:
und dann auch mal:
- 31
Daten kodiert: 31msWindows ? Echtzeit ? Zeitmessungsproblem ?
- 0
Daten kodiert: 0ms
Hee ja ist tatsächlich verdächtig häufig 31 und 16 sonst nix, bei annähend gleicher Aufgabe die vom Programm zu leisten ist.Exasperation hat geschrieben: Wetten du bekommst keine anderen werte als 16 oder 31 ms raus?