Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.18;
Скачать: CL | DM;

Вниз

Проверьте на глючность   Найти похожие ветки 

 
engine ©   (2007-10-22 10:54) [0]

Господа, раз уж пошло такое увлечение файлами и фаловыми системами вцелом, позвольте внести свою лепту.
Какими недостатками обладает первый кусок по сравнению со вторым. Свиду никаких глюков пока замечено не было.
От данного кода требуется только получение размера файла. Никаких других действий с файлами не предусматривается.
Ну и главное требование — скорость подсчета.

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 &#151; 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;


 
MBo ©   (2007-10-22 11:04) [1]

имена файлов уже были занесены в CheckFileList, так почему бы не запомнить и их размеры?


 
engine ©   (2007-10-22 11:38) [2]

> [1] MBo ©   (22.10.07 11:04)

Имена файлов берутся из плей-листа , а там нет размеров


 
Denis__ ©   (2007-10-22 12:54) [3]

А плей-лист не ты писал? почему бы не запомнить размеры сразу?(но не показывать их пользователю).


 
Desdechado ©   (2007-10-22 12:59) [4]

> Какими недостатками
В первом поиск не финализируется, а во втором зачем-то после каждой неудачи в цикле.


 
engine ©   (2007-10-22 13:29) [5]

> [4] Desdechado ©   (22.10.07 12:59)

А возможно финализировать поиск в первом случае, без введения дополнительной переменной?


> [3] Denis__ ©   (22.10.07 12:54)

Плей-лист не я писал.


 
engine ©   (2007-10-22 13:31) [6]

> [4] Desdechado ©   (22.10.07 12:59)

Во втором случае, стормозил.


 
Denis__ ©   (2007-10-22 13:36) [7]

Исходники есть? Поправь под себя.


 
clickmaker ©   (2007-10-22 13:36) [8]


> Какими недостатками обладает первый кусок по сравнению со
> вторым

там нету FindClose )


 
engine ©   (2007-10-22 13:38) [9]

> [8] clickmaker ©   (22.10.07 13:36)

Да, знаю я , что его там нет. Сам же писал. :)
Чем это грозит?


 
engine ©   (2007-10-22 13:44) [10]

> [4] Desdechado ©   (22.10.07 12:59)

Кстати, судя по справке, во втором случае FindClose должен
вызываться на каждой итерации, т.к. имя файла на новой итерации меняется.
Не стоит торопиться с FindClose, если мы собираемся искать FindNextFile.
Или я опять что-то не так понял?


 
clickmaker ©   (2007-10-22 13:53) [11]


> Чем это грозит?

утечка ресурсов


 
Anatoly Podgoretsky ©   (2007-10-22 16:37) [12]

> engine  (22.10.2007 11:38:02)  [2]

Для плей листов не интересны размеры файлов, а интересно время воспроизведения.


 
engine ©   (2007-10-22 19:00) [13]

> [12] Anatoly Podgoretsky ©   (22.10.07 16:37)

Дык и я о том же, а мне интересны размеры :)



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

Текущий архив: 2007.11.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
15-1192101300
Knight
2007-10-11 15:15
2007.11.18
Как исправить html-страницу в которой почти вся кириллица кодами?


1-1188408542
Farel
2007-08-29 21:29
2007.11.18
firebird


2-1193236815
Alex_C
2007-10-24 18:40
2007.11.18
Снять аттрибут занятости файла в NTFS


2-1193242917
Начинающий
2007-10-24 20:21
2007.11.18
fast reports 2.54


15-1192696869
Shlomo
2007-10-18 12:41
2007.11.18
С D7 проект перешёл в D2006 и стал требовать DsnDBCst.pas/dcu – у