ich hab eine Log Datei die 2 Zeile mit der Anzahl an Fehler bzw Warnungen enthält. Jedoch klappt das ganze nicht ordentlich. Die Zeile: if(regexp.indexIn(temp)!=-1) liefert meistens false, jedoch werden die nachflgenden Anweisungen trotzdem ausgeführt. Desweiteren wird bei der richtigen Zeile der Form:"Number of errors : 26" die while schleife auch nicht abgebrochen.
Erkennt irgendjemanden meine Denkfehler?
Code: Alles auswählen
QString vergleich;
QString target;
QString temp;
QRegExp regexp;
switch(typ)
{
case 0:
regexp.setPattern("(Number of errors(\s*):)(\d+)");
vergleich="Number of errors:";
break;
case 1:
regexp.setPattern("(Number of warnings:\s*)(\d+)");
vergleich="Number of warnings:";
break;
}
if (xst.open(QFile::ReadOnly)) {
QTextStream in(&xst);
do
{
temp=in.readLine();
if (regexp.indexIn(temp)!=-1);
{
qDebug()<<(regexp.indexIn(temp)!=-1);
qDebug()<<regexp.indexIn(temp);
target=temp;
qDebug()<<temp;
for (int i=0;i<=regexp.captureCount();i++)
qDebug()<<regexp.cap(i);
}
if (in.atEnd()) break;
} while(regexp.indexIn(temp)==-1);
}
qDebug()<< regexp.captureCount();
return regexp.cap(3).toInt();