Текущий архив: 2009.11.01;
Скачать: CL | DM;
Вниз
Обработка log файла Найти похожие ветки
← →
Shyrick (2009-09-10 11:58) [0]Доброе утро всем! Потоково обрабатываю лог файл--из одного файла копирую нужные строки в другой. Так как размер файлов велик (~100Mb) как реализовать отображение процента выполненой операции?
В частности как узнать кол-во строк в файле?
← →
clickmaker © (2009-09-10 12:13) [1]> из одного файла копирую нужные строки в другой
как?
← →
Медвежонок Пятачок © (2009-09-10 12:14) [2]зачем тебе строки?
есть размер файла в байтах.
есть общая длина уже считанных строк (или есть текщая позиция) - смотря как читаешь.
← →
Shyrick (2009-09-10 20:34) [3]Вообще я на С++ делаю, но все же построчно выбираю, анализирую и записываю. вот кучочек
FILE *log,*new_log;
log=fopen("log.txt","r");
ew_log=fopen("new_log.txt","w");
while (feof(log)==NULL) {
fgets(buf,256,log);
if (...условие...)
fprintf(new_log,"%s",buf);
}
← →
Медвежонок Пятачок © (2009-09-10 21:15) [4]и чо?
← →
DVM © (2009-09-10 21:25) [5]
> Shyrick (10.09.09 11:58)
> В частности как узнать кол-во строк в файле?
Если только размер строки известен и фиксирован.
Но для создания прогресса обработки не нужно знать количество строк.
У тебя же есть количество обработанных байт и общее количество байт. Вот и думай.
← →
Shyrick (2009-09-10 21:40) [6]Благодарю всех отклкнувшихся. Реализовал. Но затем убрал-время обработки увеличилось с 15 до 6 сек
← →
Shyrick (2009-09-10 21:41) [7]
> увеличилось с 15 до 6 сек
Т.е. уменьшилось =)
← →
Inovet © (2009-09-10 21:51) [8]> [6] Shyrick (10.09.09 21:40)
> Благодарю всех отклкнувшихся. Реализовал. Но затем убрал-
> время обработки увеличилось с 15 до 6 сек
Ну так, не меняй прогресс на каждой итерации, а посчитай сначала сколько надо итераций для нормальной визуализации, и вызывай изменение прогресса через это количество.
Страницы: 1 вся ветка
Текущий архив: 2009.11.01;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.016 c