Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ProgressBar


Raiv ©   (2002-08-26 18:07:00) 

Как сделать ProgressBar, отображающий ход чтения текстового файла довольно большой длины (10-50Мб).


{bas}   (2002-08-27 13:21:00) [1]

еще есть процедура BlockRead
посмотрел размер файла разделил на BlockSize - вот тебе и прогресс бар


Alex4444444444   (2002-08-27 12:56:00) [2]

> lipskiy
No kak-to glupovato chitat" file lish"nij raz tol"ko dlya
togo, chtoby vystavit" max v ProgressBar...


lipskiy   (2002-08-27 11:08:00) [3]

Кстати, насчет опредления числа строк в текстовике.
Я делал в свое время по тупому - прочитывал весь файл (readln), пока не кончится и инкрементировал счетчик строк.
Как ни странно, для 5Мб текстовика с переменной длиной строки (в среднем - 200 символов) это происходило НЕЗАМЕТНО на глаз.


Gipsy   (2002-08-27 09:42:00) [4]

Можно проще.
Ты всегда знаешь размер файла и кол-во прочитанных байт.
Дальше также как с кол-вом строк :)


MBo   (2002-08-27 09:02:00) [5]

ОК, тогда понятно.


Raiv   (2002-08-27 09:00:00) [6]

Кол-во байт в одной стоке я знаю - у меня фиксированный формат. Длину файла определил вот и все. Даже если при вычислениях будет небольшая ошибка, то этого практически не видно - но будет 99% загрузки файла и ProgressBar исчезнет или на 100% повисит лишние доли секунды - это не видно.


MBo   (2002-08-27 08:42:00) [7]

>Узнал кол-во строк в открываемом файле.
Как?


Raiv   (2002-08-27 08:40:00) [8]

Большое Вам спасибо за советы, но я зделал все очень просто и вроде работает!
1. Узнал кол-во строк в открываемом файле.
2. Разделил это кол-во на 100 (PBStep:=FL/100);
3. Вставил код при четнии файла:
.....
IF J=PBStep then begin
FormPBar.ProgressBar1.StepBy(PBStep);
Application.ProcessMessages;
J:=1;
end;
Inc(J);
......
И НИКАКИХ ТОРМОЗОВ!


Polevi   (2002-08-26 18:44:00) [9]

если у тебя win2k читай асинхронно


Krann   (2002-08-26 18:13:00) [10]

Можно его представить в виде файла памяти и считывать его кусочками прои считывании кусочка менять ProgressBar.Position


Наверх

Титульная страница Поиск, карта сайта Написать письмо