![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проверьте на глючность
engine © (2007-10-22 10:54:00)Господа, раз уж пошло такое увлечение файлами и фаловыми системами вцелом, позвольте внести свою лепту.
Какими недостатками обладает первый кусок по сравнению со вторым. Свиду никаких глюков пока замечено не было.
От данного кода требуется только получение размера файла. Никаких других действий с файлами не предусматривается.
Ну и главное требование скорость подсчета.
for i := 0 to CheckFileList.Items.Count 1 do
if CheckFileList.Checked[i] then
if FindFirstFile(PChar(CheckFileList.Items[i]),FindData) INVALID_HANDLE_VALUE
then
Result := Result + FindData.nFileSizeLow;
for i := 0 to CheckFileList.Items.Count 1 do
if CheckFileList.Checked[i] then
begin
HANDLE := FindFirstFile(PChar(CheckFileList.Items[i]),FindData);
if HANDLE INVALID_HANDLE_VALUE
then
begin
Windows.FindClose(Handle);
Result := Result + FindData.nFileSizeLow
end
end;
engine (2007-10-22 19:00:00) [1]> [12] Anatoly Podgoretsky © (22.10.07 16:37)
Дык и я о том же, а мне интересны размеры :)
Anatoly Podgoretsky (2007-10-22 16:37:00) [2]> engine (22.10.2007 11:38:02) [2]
Для плей листов не интересны размеры файлов, а интересно время воспроизведения.
clickmaker (2007-10-22 13:53:00) [3]
> Чем это грозит?
утечка ресурсов
engine (2007-10-22 13:44:00) [4]> [4] Desdechado © (22.10.07 12:59)
Кстати, судя по справке, во втором случае FindClose должен
вызываться на каждой итерации, т.к. имя файла на новой итерации меняется.
Не стоит торопиться с FindClose, если мы собираемся искать FindNextFile.
Или я опять что-то не так понял?
engine (2007-10-22 13:38:00) [5]> [8] clickmaker © (22.10.07 13:36)
Да, знаю я , что его там нет. Сам же писал. :)
Чем это грозит?
Denis__ (2007-10-22 13:36:00) [6]Исходники есть? Поправь под себя.
clickmaker (2007-10-22 13:36:00) [7]
> Какими недостатками обладает первый кусок по сравнению со
> вторым
там нету FindClose )
engine (2007-10-22 13:31:00) [8]> [4] Desdechado © (22.10.07 12:59)
Во втором случае, стормозил.
engine (2007-10-22 13:29:00) [9]> [4] Desdechado © (22.10.07 12:59)
А возможно финализировать поиск в первом случае, без введения дополнительной переменной?
> [3] Denis__ © (22.10.07 12:54)
Плей-лист не я писал.
Desdechado (2007-10-22 12:59:00) [10]> Какими недостатками
В первом поиск не финализируется, а во втором зачем-то после каждой неудачи в цикле.
Denis__ (2007-10-22 12:54:00) [11]А плей-лист не ты писал? почему бы не запомнить размеры сразу?(но не показывать их пользователю).
engine (2007-10-22 11:38:00) [12]> [1] MBo © (22.10.07 11:04)
Имена файлов берутся из плей-листа , а там нет размеров
MBo (2007-10-22 11:04:00) [13]имена файлов уже были занесены в CheckFileList, так почему бы не запомнить и их размеры?