Главная страница
    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.033 c
2-1136475809
mozgan
2006-01-05 18:43
2006.01.22
Работа с таймером


14-1136054592
Иксик
2005-12-31 21:43
2006.01.22
Ой ребята, какие вы все бухие! :))))


14-1135771386
VirEx
2005-12-28 15:03
2006.01.22
С новым годом


14-1136009895
begin...end
2005-12-31 09:18
2006.01.22
С Днём рождения! 31 декабря


5-1121781895
Destroyer
2005-07-19 18:04
2006.01.22
Создание кнопки с вертикальным текстом





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский