Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 07.10.2019, 19:01   #1
Alex711
Пользователь
 
Регистрация: 21.09.2018
Сообщений: 79
По умолчанию Размер файлов

Здравствуйте, подскажите пожалуйста, как получит размер файлов, пути к которым добавлены в ListBox, пытаюсь так:

Код:
function FileSize(fileName : wideString) : Int64;
 var
   sr : TSearchRec;
 begin
   if FindFirst(fileName, faAnyFile, sr ) = 0 then
      result := Int64(sr.FindData.nFileSizeHigh) shl Int64(32) + Int64(sr.FindData.nFileSizeLow)
   else
      result := -1;
 
   FindClose(sr) ;
 end;

procedure TForm1.SizeF;
var i: integer;
begin
 for i:=0 to ListBox1.Count - 1 do
     Label2.Caption := inttostr(FileSize(ListBox1.Items[i]));
end;
Но получаю размер одного файла. Как получит размер всех файлов?
Alex711 вне форума Ответить с цитированием
Старый 07.10.2019, 19:05   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

Вы все размеры записываете в ОДНУ переменную. Вы ожидаете, что они там сами сгрупируются, притрутся бочками и постоят?
p51x вне форума Ответить с цитированием
Старый 07.10.2019, 19:08   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

Можно в memo результат отобразить. В Label2.Caption тоже можно, но не так же, затирая, а накапливая, добавляя строку справа
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.10.2019, 19:51   #4
Alex711
Пользователь
 
Регистрация: 21.09.2018
Сообщений: 79
По умолчанию

Вывел в ListBox2:

Код:
ListBox2.Items.Add(FloatToStr(FileSize(ListBox1.Items[i])));
В ListBox2 вижу:
- если в ListBox1 2 файла, в ListBox2 три значения (размер одного файла повторяется)
- если в ListBox1 3 файла, в ListBox2 шесть значений (размер первого файла повторяется 3 раза, второго 2 раза, третьего 1 раз)
Alex711 вне форума Ответить с цитированием
Старый 07.10.2019, 20:50   #5
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,128
По умолчанию

Так очистить его надо.
Код:
procedure TForm1.SizeF;
var i: integer;
begin
  ListBox2.Clear;
  for i:=0 to ListBox1.Count - 1 do
     ListBox2.Items.Add(IntToStr(FileSize(ListBox1.Items[i])));
end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 07.10.2019, 22:27   #6
Alex711
Пользователь
 
Регистрация: 21.09.2018
Сообщений: 79
По умолчанию

Вес файлов в ListBox2, подскажите пожалуйста ещё как сложить (+) значения айтемов ListBox2?
Alex711 вне форума Ответить с цитированием
Старый 08.10.2019, 02:45   #7
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,620
По умолчанию

А нафига вам вообще ListBox2?
Сделайте так, например
Код:
function TForm1.SizeF: Int64;
begin
  Result:=0;  
  for i:=0 to ListBox1.Count - 1 do
    Result:=Result+FileSize(ListBox1.Items[i]);
end;
...
Label2.Caption:=IntToStr(SizeF);
northener вне форума Ответить с цитированием
Старый 08.10.2019, 15:46   #8
Alex711
Пользователь
 
Регистрация: 21.09.2018
Сообщений: 79
По умолчанию

Спасибо всем за ответы!
Alex711 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
неправильно определяется размер больших файлов BLACK_RAIN Общие вопросы Delphi 9 17.04.2019 14:10
Почему разный размер файлов при компиляции? R_G Win Api 4 25.03.2016 13:17
Размер файлов Михаил Юрьевич Общие вопросы Delphi 6 10.08.2015 12:24
Почему уменьшился максимальный размер загружаемых файлов? Вадим Мошев О форуме и сайтах клуба 1 03.08.2013 22:51
Удаление файлов из папки по условию (размер) Vasьka Microsoft Office Excel 3 10.07.2013 21:38


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS