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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2008, 13:21   #1
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
Радость Оптимизация кода

Всем привет! Подскажите пожалуйста как можно оптимизировать этот код, что бы он особо не грузил систему и быстро выполнялся? Здесь идёт проверка наличия файла. Если он есть, то идём дальше, а если его нет, то записываем. Когда файлов мало он быстро выполняется, а когда много, то долговато.
Код:
Var
Nam: string;
S: integer;
//---------------------------------------------------//
Procedure TForm1.FormCreate(Sender: TObject);
Begin
Nam:='0';
S:=0;
End;
//---------------------------------------------------//
Procedure TForm1.Timer1Timer(Sender: TObject);
Begin
Repeat
If Fileexists(Nam+'.jpg') Then //проверяю есть ли такой файл
Begin
S:=S+1;
Nam:=IntToStr(S);
End;
Until Not
Fileexists(Nam+'.jpg');
GetPic(100);  //делаю скриншот
Ms.SaveToFile(Nam+'.jpg');
End;
Всегда рад помочь!

Последний раз редактировалось Terran; 01.11.2008 в 13:23.
Terran вне форума Ответить с цитированием
Старый 01.11.2008, 14:28   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А при чем тут таймер-то? Вот у вас и идет задержка проверки наличия файлов на интервал таймера...
mihali4 вне форума Ответить с цитированием
Старый 01.11.2008, 15:40   #3
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Скажите ещё пожалуйста, а сама функция Fileexists быстро проверяет наличие файла? К примеру за какое время она сможет проверить 400 файлов? (В выше приведённом коде если убрать таймер)
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 01.11.2008, 15:52   #4
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

А почему не применить штатный подход
Код:
AssignFile(f_file,FileName); 
{$I-}  //откл. проверки операционкой
Reset(f_file);  // Дельфи проверяет наличие файла при открытии
{$I+}  // опять вкл. проверку от ОС
if IOResult = 0 then // при = 0 файл есть, любое другое знач.-файла нет
и даллее уже по неоходимости.
Для проверки б'ольшего кол-ва файлов - цикл, FileName привязать к переменной цикла.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 01.11.2008, 16:22   #5
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

А какой из этих вариантов будет наиболее оптимальный? (самое главное что ты не грузил сильно систему)
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 01.11.2008, 16:32   #6
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Не скажу насчет оптимальности, но можно проверить скорость - запустить проверку десятка файлов (даже пустых) и одновременно в
таймере запустить счетчик.После окончания проверки таймер остановить и посмотреть значение счетчика.Так можно сравнить оба способа.При
штатной проверке ОС отключается, значит и нагрузка на систему не
увеличивается.Все идет в среде Дельфи.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 01.11.2008, 16:57   #7
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Буду пробовать.
Большое спасибо всем за помощь!!!
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка атрибутов файла. v01umE Общие вопросы C/C++ 2 31.05.2008 08:37
Проверка существования TEdit John_chek Общие вопросы Delphi 9 18.04.2008 14:56
Проверка доступности файла Marsik Помощь студентам 2 05.04.2008 09:53
Проверка существования директории Gorin Общие вопросы Delphi 7 25.11.2007 19:47
проверка существования окна Shade Win Api 3 22.07.2007 17:56