Форум: "Основная";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
Внизпосоветуйте Найти похожие ветки
← →
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 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.016 c