Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Вниз

Общий объем файлов   Найти похожие ветки 

 
13   (2006-01-07 19:47) [0]

Использую FindFirst findnext FindClose для поиска файлов результат вывожу в Listview. А как подсчитать общий объем файлов найденных и выведенных в ListView


 
Sergey2005   (2006-01-07 19:57) [1]

Можно сразу при вводе в Listview в одной переменной складывать размер, тоесть файл 1 + 2 +3...
i:=i+filesize


 
Virgo_Style ©   (2006-01-07 19:57) [2]

TSearchRec.Size, операция суммирования (+)


 
13   (2006-01-07 20:01) [3]

Можно сразу при вводе в Listview в одной переменной складывать размер, тоесть файл 1 + 2 +3...
i:=i+filesize

получается только размер последнего файла


 
13   (2006-01-07 20:03) [4]

Если не сложно покажите на примере

procedure ffind(cat:string); //каталог, откуда начать поиск
var sea:TSearchRec;
res:integer; //результат поиска (0 или нет)
begin
res:=FindFirst(cat+"*.*",faAnyFile,sea); //ищем первый файл
res:=findNext(sea);//ищем следующий файл
While res=0 do
begin
if (Sea.Attr=faDirectory) and ((Sea.Name=".")or(Sea.Name="..")) then//чтобы не было файлов . и..
begin
Res:=FindNext(sea);
Continue;//продолжаем цикл
end;

if (Sea.Attr=faDirectory) then//если нашли директорию, то ищем файлы в ней
begin
Ffind(cat+Sea.Name+"\");//рекурсивно вызываем нашу процедуру
Res:=FindNext(Sea);//ищем след. файл
Continue;//продолжаем цикл
end;
form1.ListBox1.Items.Add(Sea.Name);//добавляем в Listbox:Tlistbox имя файла
Res:=FindNext(Sea);//ищем след. файл
end;
FindClose(Sea);//освобождаем пересенную поиска
end;


 
Sergey2005   (2006-01-07 20:27) [5]

При нахождении файла, определяеш его раэмер к примеру в result, ну а потом приплюсовываеш к переменной filesize:

filesize:=filesize+result

filesize первоночально в 0 должно быть, если процедура запускается не один раз, то тогда filesize должна быть глобальной, чтоб не потерять общий результат.


 
Virgo_Style ©   (2006-01-07 20:45) [6]

Sergey2005   (07.01.06 20:27) [5]
тогда filesize должна быть глобальной


или вместо процедуры сделать функцию, возвращающую общий размер найденных файлов, imho так красивше :-)


 
13   (2006-01-07 20:46) [7]

А пример можно?


 
Sergey2005   (2006-01-07 20:51) [8]

Привёл бы пример, да ток щас не помню как там размер файла вычислить, а лесть в справку нет желания.

Virgo_Style ©   (07.01.06 20:45) [6]
*или вместо процедуры сделать функцию, возвращающую общий размер найденных файлов, imho так красивше :-)*
С функцией оно понятно лудше, просто я привёл пример.


 
Virgo_Style ©   (2006-01-07 21:13) [9]

Sergey2005   (07.01.06 20:51) [8]
как там размер файла вычислить


Есть соответствующее поле у TSearchRec, если, конечно, не нужно реально занятое место на диске, там все гораздо интересней.


 
UnKnow1234   (2006-01-07 22:29) [10]


> А пример можно?


procedure TForm1.Button1Click(Sender: TObject);
Var F:TSearchRec;
   i:Integer;
   sum:Extended;
begin
sum:=0;
i:=faAnyFile;
If FindFirst("c:\Video\Movies\*.*",i,F)<>0 Then Exit;
While FindNext(F)=0 Do
 If (F.Attr and faDirectory)=0 Then
   sum:=sum+(F.Size);
Label1.Caption:=FloatToStr(sum)+" Byte";
end;



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

Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.057 c
3-1132752488
Дмитрий_Б
2005-11-23 16:28
2006.01.22
Substr в Oracle


2-1136544210
Bopros
2006-01-06 13:43
2006.01.22
Маленькой приложение с Build with runtime packages


6-1129151926
Boa77
2005-10-13 01:18
2006.01.22
Привет Мастерам! как мониторить все url или ip?


4-1131719853
clickmaker
2005-11-11 17:37
2006.01.22
Отключение сообщение об установке неподписанного драйвера


14-1135968434
Nick12
2005-12-30 21:47
2006.01.22
Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский