1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

Обсуждение примеров для пользователей

Тема в разделе "Delphi", создана пользователем YURSHAT, 1 янв 2012.

  1. Тех. админ Администратор

    Регистрация:
    26 дек 2011
    Сообщения:
    514
    Симпатии:
    601
    Пол:
    Мужской
    GVS276 нравится это.
  2. Знаток Проверенный

    Регистрация:
    16 июн 2011
    Сообщения:
    321
    Симпатии:
    450
    Обсждение примеров для пользователей

    AVMan, я извиняюсь, конечно, но
    Код (Text):
    procedure TForm1.Timer1Timer(Sender: TObject); var ArcSize, MaxSize: Integer;
    begin
    ///////////////////////////////////////////////////////
     ArcSize:= GetSizeFile(Edit1.Text);
     MaxSize:= Round(GetSizeFile(Edit1.Text)-GetSizePath(Edit2.Text));
     ProgressBar1.Max:= Round((ArcSize+MaxSize)*1.1);
     ProgressBar1.Position:= GetSizePath(Edit2.Text);
    ///////////////////////////////////////////////////////
    end;
    это бред.
    MaxSize:= Round(GetSizeFile(Edit1.Text)-GetSizePath(Edit2.Text));
    ближе к концу распаковки второе значение всегда больше первого (распакованные данные больше размера архива). Соответственно MaxSize будет отрицательным.
    Максимум в прогрессбаре достигнет при выравнивании размера архива размеру распакованных данных, дальше начинается бред.
    Приведу пример: архив 1гб, текущий размер распакованных данных 3гб, а еще реально остается распаковать 2гб (в данном случае энтропия упакованных данных довольно низка). Так вот в этих расчетах получается
    MaxSize:= 1гб-3гб=-2гб
    ProgressBar1.Max:= (1гб-2гб)*1.1=-1.1гб
    ProgressBar1.Position:=3гб
    не очень красиво.

    Добавлено через 2 минуты
    Да и при паре десятков тысяч мелких файлов - измерение текущего размера каталога превращается в ад.
     
    Krinkels и GVS276 нравится это.
  3. Ветеран Проверенный

    Регистрация:
    1 июл 2011
    Сообщения:
    351
    Симпатии:
    188
    Упс, забыл проверку сделать..

    Я знаю, но я лишь не сделал проверку, если размер папки будет совпадать с размером или больше размера архива, то тогда будет переписываться MAX на новое значение...

    Проверю у себя..
     
    Последнее редактирование: 15 окт 2012
  4. Борода Модератор

    Регистрация:
    15 июн 2011
    Сообщения:
    718
    Симпатии:
    533
    Пол:
    Мужской
    AVMan, а получить информацию об архиве заранее? сам 7z это точно умеет.
     
  5. Ветеран Проверенный

    Регистрация:
    1 июл 2011
    Сообщения:
    351
    Симпатии:
    188
    Gnom,
    Если смогу, то сделаю
     
  6. Новичок

    Регистрация:
    7 авг 2016
    Сообщения:
    1
    Симпатии:
    0
    Как реализован вывод информации с консольного приложения arc в программу-оболочку? Очень интересно узнать. Скачал ваши исходники, но так и ничего не понял...
     

Поделиться этой страницей