Вниз
Скачать: CL | DM;

посоветуйте   Найти похожие ветки 

← →
snake1977   (2004-02-04 13:28) [0]

Посоветуйте, как будет правильнее сделать. Каждые 5 минут вызывается процедура

List:=TStringList.Create;
Dir:="c:\windows";
ForceDirectories(Dir);
ScanDir(Dir,"*.tmp",List);
if List.Count>0 Then
Begin
for i:=0 to List.Count-1 do
DeleteFile(List[i]);
End;
List.Free;

На счет переменной List, ее сделать глобальной а перед вызовом процедуры делать List.Clear; или оставить ее локальной в процедуре и создавать каждый раз??


← →
Тимохов ©   (2004-02-04 13:29) [1]

второе

> if List.Count>0 Then

это - на фиг.


← →
snake1977   (2004-02-04 13:32) [2]

>>Тимохов

второе - это оставить ее локальной и делать каждые пять минут ей List:=TStringList.Create; и List.Free; ???


← →
alex_*** ©   (2004-02-04 13:33) [3]

Создавать в локале - путаницы меньше будет. Тем более что сканировать папку это довольно долго.


← →
Тимохов ©   (2004-02-04 13:35) [4]


> snake1977 (04.02.04 13:32) [2]

Ну да.
Это "if List.Count>0 Then" все-таки убери - лишнее.


← →
snake1977   (2004-02-04 13:37) [5]

не хочеться каждый раз выделять и освобождать память :(
этож приведет к ее фрагментации, ведь реально, переменная типа TStringList есть не что иное как указатель


← →
Тимохов ©   (2004-02-04 13:41) [6]


> snake1977 (04.02.04 13:37) [5]

Не занимася ерундой - менеджер памяти не так глуп, как кажется.
Делай дело...

Ну и вообще, что думаешь для переменной dir используются какие-то другие механизмы? Она у тебя локальная - для нее каждый раз выделяется память (тем же менеджером памяти), но тебя это как-то не напрягает :)))


← →
snake1977   (2004-02-04 13:43) [7]

уломали :)
спасибо за советы


← →
Тимохов ©   (2004-02-04 13:43) [8]

Для реал мастеров по поводу 6.
Знаю, что не совсем так, как я написал, но для выражения мысли, вполне достаточно, имхо.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.018 c
3-38724
Igoryok
2004-01-21 22:38
2004.02.13
Interface Seeka в АДО - Jet


6-38983
Aleksey
2003-12-10 09:14
2004.02.13
Управление WinGate-ом


1-38853
kex86
2004-02-02 12:51
2004.02.13
Почему не проходит блок


6-38980
Evgeniy34
2003-12-11 07:41
2004.02.13
Проблемка с подключением к сети


14-39068
vopros
2004-01-27 11:32
2004.02.13
Где хранит RemoteAdministrator список компьютеров для просмотра?




   Наверх