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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2009, 11:00   #1
Oleg Romanchuk
Ghost
Форумчанин
 
Аватар для Oleg Romanchuk
 
Регистрация: 16.08.2007
Сообщений: 143
По умолчанию Кол-во строк в Txt в ProgressBar

Добрый день, меня интересует есть ли функция в Delph которая выдавала бы кол-во строк в txt файле и при этом не грузила оперативку и процессор
Текстовый файл весит примерно 750 мб. и имеет более милиона строк

Нужно это для того что бы в прогрсс бар, записать максимальное значение MaxValue. и показать пользователю ход выполнения операции)

У меня получилось примерно следующее:
Код:
procedure TMainForm.Button3Click(Sender: TObject);
var
f,l:TStringList;
i:Integer;
Fail:TextFile;
str1,s:string;
begin

L:=TStringList.Create;
L.LoadFromFile(PathEdit.Text);
i:=0;
i:=L.Count;
MainPos.MaxValue:=i;
MainPos.Progress:=0;
L.Free;

f:=TStringList.Create;
AssignFile(Fail,PathEdit.Text);
Reset(Fail);
i:=0;

while not eof(fail) do
begin
MainPos.Progress:=MainPos.Progress+1;

//Операция добавления данных из txt файла в БД

end;
f.Free;
end; end.

Последний раз редактировалось Oleg Romanchuk; 11.12.2009 в 11:38.
Oleg Romanchuk вне форума Ответить с цитированием
Старый 11.12.2009, 12:42   #2
Armorer
Подтвердите свой е-майл
 
Регистрация: 07.04.2007
Сообщений: 120
По умолчанию

Можно так:

в прогрессбаре отображать не отношение прочтенных строк к общему числу, а количество прочтенных байт к общему числу. Будет гораздо эффективнее чем читать два раза (и пользы больше, т.к. заполнее шкалы будет проходить более равномерно).

примерно так:

MaxValue = размер фала
При чтении строки:
MainPos.Progress:=MainPos.Progress+ Lenght(прочтенная строка);
Armorer вне форума Ответить с цитированием
Старый 11.12.2009, 15:12   #3
Oleg Romanchuk
Ghost
Форумчанин
 
Аватар для Oleg Romanchuk
 
Регистрация: 16.08.2007
Сообщений: 143
По умолчанию

Цитата:
Сообщение от Armorer Посмотреть сообщение
Можно так:

в прогрессбаре отображать не отношение прочтенных строк к общему числу, а количество прочтенных байт к общему числу. Будет гораздо эффективнее чем читать два раза (и пользы больше, т.к. заполнее шкалы будет проходить более равномерно).

примерно так:

MaxValue = размер фала
При чтении строки:
MainPos.Progress:=MainPos.Progress+ Lenght(прочтенная строка);
О_о то что надо спасибо большое, я нуп
Oleg Romanchuk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод большего кол-ва строк Alternavi SQL, базы данных 2 03.07.2009 15:43
Memo - кол-во строк. Лубышев Компоненты Delphi 1 17.05.2008 22:54
Ограничение кол-во выводимых строк в консоле.. Карась Общие вопросы Delphi 6 01.02.2008 00:54
ListBox Кол-во строк ruPy Компоненты Delphi 1 14.12.2007 17:51
Delphi. Определение кол-ва строк в Memo PAVEL315 Помощь студентам 8 08.12.2007 21:53