crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

kvak
  опции профиля:
сообщение 5.5.2010, 4:22
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 51
Регистрация: 5.5.2010
Пользователь №: 1690

Спасибо сказали: 1 раз(а)




Репутация:   0  


Здравствуйте. Не могли бы вы посмотреть на исходники во вложении и сказать что в них неправильно. И поправить. Там маленькая программка. Задача в том, чтобы открыть log.txt и отобрать из него вхождения для каждого случая, если они встретятся. Мне кажется, что по идее все должно работать, но что-то я недопонимаю. После компиляции почему-то не хочет выполнять цикл и приложение не отвечает.
Кстати, в с++ можно задавать в цикле for по два инициализатора и два инкримента, типа такого ?
for (int index = 0, int c =0 ; index != -1; index++, c++ )
{
...
}
Если да, то почему-то при компиляции это считалось ошибочным.
Прикрепленные файлы
Прикрепленный файл  PACKAGE.zip ( 7.54 килобайт ) Кол-во скачиваний: 144
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
kvak
  опции профиля:
сообщение 5.5.2010, 20:14
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 51
Регистрация: 5.5.2010
Пользователь №: 1690

Спасибо сказали: 1 раз(а)




Репутация:   0  


Спасибо всем за грамотные ответы. Теперь все встало на свои места для меня, новичка. Как же я не увидел, что есть функции contains и count. Но с другой стороны их тоже кто-то придумал. А подскажите еще, что дает эта функция:
QApplication::processEvents();
И это
out << " - OK";
Как потом можно полезно использовать объект out ?
И еще немного не понял куда попадает qDebug() << "index =" << index;
Я имею ввиду, где я смогу увидеть qDebug() и что такое qDebug() ?________________________________________________________________________________

p.s. А я все-таки заставил работать это дело сам :rolleyes: Мож не идеально, но зато работает. 50.000 строк обработало за несколько секунд.
Раскрывающийся текст

void MyProg::analize()
{
QString fileName;
fileName = fpath->text();
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QMessageBox::warning(this, tr("Vmaanalize"),
tr("Cannot read file %1:\n%2.")
.arg(fileName)
.arg(file.errorString()));
return;
}

///////////////////////////start parser///////////////////////////////

while (!file.atEnd()) {
QByteArray line = file.readLine();
start(line);
}
/////////////////////////////////////////////////////////////////
for (int a = 0; a < 40; a++)
{
QString two;
QString equ = " = ";
QString end = "\n";
QString result = (vxod[a]);
two.setNum(summary[a]);
result = result + equ + two + end;
comit->insertPlainText(result);
}
}
//////////////////////////////parser///////////////////////////////
void MyProg::start(QByteArray line)
{
QByteArray temp = line;
char *lima = temp.data();
int size = 0;
global = 0;
while (size < 40){
parser(lima);
global++;
size++;}
}

void MyProg::parser(char* mypointer)
{
QString temp;
QString temp2 = vxod[global];
int lee = temp2.length();
while (*mypointer)
{
temp.clear();
for (int length = 0; length < lee && *mypointer; length++) {
temp.append(*mypointer);
mypointer++; }
if (!*mypointer)
return;
mypointer -= (lee - 1);
int x = QString::compare(temp, temp2, Qt::CaseInsensitive);
if (x == 0)
summary[global]++;
}
}

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 4.6.2025, 21:27