Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2009, 15:24   #1
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
Вопрос Как с помощью ProgressBar показать процесс загрузки файла?

Привет. У меня вопрос: Есть opendialog и progressbar, как сделать что б при выборе файла из opendialog, progressbar показывал загрузку файла. (загружаются txt файлы). Спасибо.
blackstersl вне форума Ответить с цитированием
Старый 19.03.2009, 20:42   #2
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Ну, как, думаю вы грузите файлы построчно?
Узнайте размер файла filesize(f) - поставье значение Max.
Потом в цикле при чтении узнавайте позицию "маркера" при помощи функции filepos(f);
Если файл текстовый - узнайте количество строк и при кажой итерации чтения строки прибавляейте прогресс...
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 19.03.2009, 21:32   #3
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
По умолчанию

хорошо, я нашёл код для filesize но не знаю как его приментить, подскажите пожалуйста.

Код:
function TForm1.GetFileSize(FileName: String): DWORD;
var
  f: HFILE;
begin
  Result := 0;
  f := FileOpen(FileName, fmOpenRead);
  if (f <> HFILE_ERROR) then
  begin
    Result := Windows.GetFileSize(f, NIL);
    FileClose(f);
  end;
end;
blackstersl вне форума Ответить с цитированием
Старый 19.03.2009, 22:40   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну, например, поделите длину файла на 10 частей-блоков (это будет максимальная позиция для прогрессбара) и читайте из файла этими блоками, увеличивая позицию прогрессбара на 1 после прочтения каждого блока...

Последний раз редактировалось mihali4; 20.03.2009 в 02:04. Причина: Опечатка
mihali4 вне форума Ответить с цитированием
Старый 20.03.2009, 01:28   #5
Виталий Серов
Заснувший
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 213
По умолчанию

Можно сделать так
1 - Открыть файл и прочитать построчно до конца
Цитата:
i := 0;
Reset(f)
While not eof(f) do begin
Readln(f);
i := i + 1;
end;
CloseFile(f);
2 - Присвоить максу прогресс бара число i
3 - И опять читать фаил, каждый раз присваивая номер строки - текущей позиции прогресс бара
Виталий Серов вне форума Ответить с цитированием
Старый 20.03.2009, 11:31   #6
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

Цитата:
Сообщение от Виталий Серов Посмотреть сообщение
Можно сделать так
1 - Открыть файл и прочитать построчно до конца

2 - Присвоить максу прогресс бара число i
3 - И опять читать фаил, каждый раз присваивая номер строки - текущей позиции прогресс бара
знаете, удобство не должно быть во вред. зачем читать файл 2 раза? только ради прогрессбара? он делается для больших файлов. если так сделать то сначала нужно ждать открытия всего файла, а потом еще то-же самое время но уже с прогресс-баром
я советую сделать как говорили раньше. Читать блоками.
Роман Радер вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отобразить в ProgressBar процесс отправки писем через SMTP leon2009 Работа с сетью в Delphi 15 20.03.2009 21:26
премотка с помощью ProgressBar Mazaxaka Мультимедиа в Delphi 7 08.02.2009 12:50
с помощью Delphi завершить процесс Explorer.exe Phantom_nvkz Win Api 1 25.01.2009 16:45
Показать диалог с помощью windows messages mnemonic Win Api 3 27.08.2008 00:27
Как с помощью xml-файла с генерировать БД в отчет MS Word quit БД в Delphi 3 21.02.2008 16:23