Название: Как определить количество процентов в цикле? Отправлено: smirnoff от Май 16, 2011, 22:11 Есть код:
Цитировать ... for(int i = 0; i < (file.size() / 128); i++) { in.readRawData(kod, 17); in.readRawData(kod2, 17); in.readRawData(data, 11); in.readRawData(mars, 53); in.readRawData(data2, 30); query.prepare("INSERT INTO MR_FILE (kod, kod2, data, mars, data2)" "VALUES(:kod, :kod2, :data, :mars, :data2);"); query.bindValue(":kod", QString(kod).left(17)); query.bindValue(":kod2", QString(kod2).left(17)); query.bindValue(":data", QString(data).left(11)); query.bindValue(":mars", QString(mars).left(53)); query.bindValue(":data2", QString(data2).left(30)); query.exec(); // ТУТ НАДО ВЫВОДИТЬ КОЛ-ВО ПРОЦЕНТОВ //out << (i * 100 * 128) / (file.size()) << "%... "; } Как организовать вывод в консоль (out << ...) информации о ходе выполнения работы цикла в процентах? Например, выводить с шагом 5%, т.е. 5%... 10%... 15%... и т.д. Название: Re: Как определить количество процентов в цикле? Отправлено: LisandreL от Май 16, 2011, 23:20 Например:
Код: #include <QDebug> Но можно и по старинке через std::cout. Название: Re: Как определить количество процентов в цикле? Отправлено: smirnoff от Май 17, 2011, 09:23 Например: Код: #include <QDebug> Но можно и по старинке через std::cout. Это не работает!!! Вы бы сначала попробовали, либо прикинули что получится... Тут file.size() - размер файла в байтах. Каждые 128 байт работает вывод на экран. Вы представляете сколько раз сработает вывод? Название: Re: Как определить количество процентов в цикле? Отправлено: Fess от Май 17, 2011, 09:31 Уважаемый, тут вам никто ничего не должен.
Если не хотите отрабатывать вывод по количеству обработанных байт, то замеряйте время через QTime и если прошло более x сек выводите сообщение с процентами. Или сохраняйте последний рассчитанный процент и если он меньше текущего на шаг x, то выводите. Т.е. считаете всегда, а выводите только иногда в обоих случаях. Название: Re: Как определить количество процентов в цикле? Отправлено: Fat-Zer от Май 17, 2011, 09:32 ну так поставьте делитель перед этим, что-то типа if(i%(file.size() / 128 / 20)==0)
ЗЫ: file.size() лучше сохранить в какую-либо переменную. Название: Re: Как определить количество процентов в цикле? Отправлено: Denjs от Май 17, 2011, 11:48 Это не работает!!! Вы бы сначала попробовали, либо прикинули что получится... так вы определитесь пожалуйста - "у вас это не работает" или "оно слишком много чего выводит в консоль".Тут file.size() - размер файла в байтах. Каждые 128 байт работает вывод на экран. Вы представляете сколько раз сработает вывод? А потом, соответственно, по отдельности решайте эти проблемы. Название: Re: Как определить количество процентов в цикле? Отправлено: Igors от Май 17, 2011, 13:45 Как организовать вывод в консоль (out << ...) информации о ходе выполнения работы цикла в процентах? Например, выводить с шагом 5%, т.е. 5%... 10%... 15%... и т.д. Этот шаг не привязан ко времени и получится или все проскочит слишком быстро или наоборот, создаст впечатление "зависания". Лучше такКод
Название: Re: Как определить количество процентов в цикле? Отправлено: smirnoff от Май 17, 2011, 20:23 Как организовать вывод в консоль (out << ...) информации о ходе выполнения работы цикла в процентах? Например, выводить с шагом 5%, т.е. 5%... 10%... 15%... и т.д. Этот шаг не привязан ко времени и получится или все проскочит слишком быстро или наоборот, создаст впечатление "зависания". Лучше такКод
Спасибо. Все работает! |