Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #4  
Старый 28.09.2018, 08:23
Аватар для Aqel
Aqel Aqel вне форума
Прохожий
 
Регистрация: 08.10.2011
Адрес: Пермь
Сообщения: 13
Версия Delphi: XE8 SP1
Репутация: 10
По умолчанию

Вот код на основе sevezip.pas
Код:
uses
...sevenzip, ...
 
function ProgressCallback(sender: Pointer; total: boolean; value: int64): HRESULT; stdcall;
 begin
   if total then
     Form1.sprgrsbr1.Max:= value
   else
     Form1.sprgrsbr1.Position:= value;
   Result:= S_OK;
 end;
 
function Decompress(FileName, DestDir, ArcFname: String; ArcDir: Boolean ): Boolean;
var
  i: Integer;
  ItP: string;
  items: array[1..11] of Cardinal;
  sprgrsbr1: TsProgressBar;
begin
  Result:= False;
  Application.ProcessMessages;
  try
  with CreateInArchive(CLSID_CFormat7z) do
    begin
      OpenFile(FileName);
      SetProgressCallback(sprgrsbr1, ProgressCallback);
      for i:= 1 to NumberOfItems - 1 do
      if not ItemIsFolder[i] then
      //ExtractItem(items[i], Steam, False);  - как ей пользоваться в душе не понимаю...
      ExtractTo(DestDir);
    end;
  finally
    Result:= True;
  end;
end;

Этот код идеально работает (лучше чем JEDI) - распаковывает архив с прогрессбаром, но вопрос распаковки определённых файлов/папок всё равно есть...

Вот файлы:
Вложения
Тип файла: zip 7Z.ZIP (341.4 Кбайт, 4 просмотров)
__________________
Всё намного проще, чем есть на самом деле...

Последний раз редактировалось Aqel, 28.09.2018 в 08:26.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:38.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025