ISFreeArcExtract

Модуль ISFreeArcExtract 4.3

Нет прав для скачивания

Andreo Fadio

Старожил
Помогите с вопросом. Установку архивов развернуть то развернул (перед самой установкой)
как сделать отмену установки по нажатию отмены распаковки архивов?
 

hgdagon

Новичок
IsFreeArcExtract
В версии 4.1 была добавлена возможность извлекать отдельные файлы, при помощи файла списка. Какова структура этого файла? Я испробовал много разных вариантов, а установщик все сидит на 0%.
 

Shegorat

Lord of Madness
Администратор
Какова структура этого файла? Я испробовал много разных вариантов, а установщик все сидит на 0%.
Я точно не помню. Эта функция была экспериментальная. Вроде как обычный txt файл со списком полного пути в архиве, примерно такого вида (main.exe лежит в корне архива)
Код:
main.exe
settings.ini
data\PC_data_1.bin
data\PC_data_2.bin
 

hgdagon

Новичок
Вроде как обычный txt файл со списком полного пути в архиве
То есть никаких звездочек, директорий, и другой стуктуры папок в конечной папке?
Так же есть другие модули, которые позволчют так извлекать из FreeArc архивов? Я все еще использую этот модуль, так как он мне более подходит. Но, если есть другие модули, которые умеют работать с FreeArc, хотел бы попробовтаь.
 

Shegorat

Lord of Madness
Администратор
То есть никаких звездочек, директорий, и другой стуктуры папок в конечной папке?
Я не помню, я это делал очень давно)

Так же есть другие модули, которые позволчют так извлекать из FreeArc архивов?
Многие ISDone юзают. А так вроде больше и нет ничего
 

Shegorat

Lord of Madness
Администратор
Работа над модулем ещё не закончена. Вот пока текущие наработки. Внимательно смотрите пример, там есть изменения в коде и вызовах функций
Изменения:
  • Добавлен обработчик Arc.ini
  • Переписан парсер секции архивов
  • Небольшие исправления
  • Обновлена unarc.dll
  • Выпилены встроенные, устаревшие, внешние компрессоры, теперь эта задача ложится на плечи пользователей модуля
  • Выпилены некоторые нерабочие или устаревшие директивы секции ArcFiles
  • Форматирование кода для лучшей читабельности
 

Вложения

Andreo Fadio

Старожил
@Shegorat, а время так и не просчитается нормально:
или я может чего не понимаю, но упрощенное отключение вывода отсчета времени (через #Define) была бы кстати.
 

Shegorat

Lord of Madness
Администратор
@Andreo Fadio, ну собственно время и не получится просчитать нормально, только примерно. Оно считает на основе времени распаковки и текущем объеме извлеченных данных.
Но вообще тут просто пример, как подключать модуль (ISFreeArcExtract_Example.iss), и его можно кастомизировать как угодно
 

sergey3695

Ветеран
Модератор
@Andreo Fadio,
code_language.pascal:
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.

[Code]
var
  StartInstall: Integer;
  TimeLabel: TLabel;
  Timer: TTimer;

Function TicksToTime(Ticks: DWord; h,m,s: String; detail: Boolean): String;
Begin
    if detail then            {hh: mm:ss format}
        Result:= PADZ(IntToStr(Ticks/3600000), 2) +':'+ PADZ(IntToStr((Ticks/1000 - Ticks/1000/3600*3600)/60), 2) +':'+ PADZ(IntToStr(Ticks/1000 - Ticks/1000/60*60), 2)
    else if Ticks/3600 >= 1000 then    {more than hour}
        Result:= IntToStr(Ticks/3600000) +h+' '+ PADZ(IntToStr((Ticks/1000 - Ticks/1000/3600*3600)/60), 2) +m
    else if Ticks/60 >= 1000 then    {1..60 minutes}
        Result:= IntToStr(Ticks/60000) +m+' '+ IntToStr(Ticks/1000 - Ticks/1000/60*60) +s
    else Result:= Format('%.0n', [Abs(Ticks/1000)]) +s    {less than one minute}
End;

procedure GetTime(Sender: TObject);
begin
  StartInstall:= StartInstall+1000;
  TimeLabel.Caption:= 'Elapsed ' + TicksToTime(StartInstall, ' hour', ' min', ' sec', false);
end;

procedure InitializeWizard();
begin
  TimeLabel:= TLabel.Create(WizardForm)
 with TimeLabel do
 begin
  SetBounds(0, ScaleY(80), ScaleX(457), ScaleY(20));
  AutoSize:= False
  Transparent:= True;
  StartInstall:= 0;
  Caption:= TicksToTime(StartInstall, 'hour', 'min', 'sec', true);
  Font.Color:= clWhite;
  Parent:= WizardForm.WelcomePage;
  end;
  Timer:=TTimer.Create(nil);
with Timer do begin
  Interval:=1000;
  OnTimer:=@GetTime;
end;
end;

//procedure CurStepChanged(CurStep: TSetupStep);
//begin
//If CurStep = ssInstall then
//  begin
//
//  end;
//end;

procedure DeinitializeSetup();
begin
  Timer.Free;
end;
 

Shegorat

Lord of Madness
Администратор
Shegorat обновил(а) ресурс ISFreeArcExtract новой записью:

ISFreeArcExtract v.4.3

Изменения:
  • Добавлен обработчик Arc.ini
  • Переписан парсер секции архивов
  • Небольшие исправления
  • Обновлена unarc.dll
  • Выпилены встроенные, устаревшие, внешние компрессоры
  • Выпилены некоторые нерабочие или устаревшие директивы секции ArcFiles
  • Форматирование кода для лучшей читабельности
  • Подготовка кода к последующим изменениям
Узнать больше об этом обновлении...
 

Stas

Участник
Кто нибудь может добавить в скрипт xtool lolz и srep ? или показать как это сделать ?
 

Andreo Fadio

Старожил
или показать как это сделать ?
[Files]
.......
Source: ISFAEFiles\srep.exe; DestDir: {tmp}; Flags: dontcopy
Source: ISFAEFiles\arc.ini; DestDir: {tmp}; Flags: dontcopy

.......


[ArcFiles]
.......
Source: {src}\Data.bin; DestDir: {app}\data; Disk: 1; Config: {tmp}\arc.ini
.......
{#ParseArcFiles}

[_Code]
.......
function BeforeExtract(): Boolean;
begin
// Здесь можно извлечь необходимые файлы перед распаковкой
ExtractTemporaryFile('srep.exe');
ExtractTemporaryFile('arc.ini');

Result:= True;
end;
.......
Желтым - разделы куда ставить
Оранжевым - что надо добавить
 

Stas

Участник
[Files]
.......
Source: ISFAEFiles\srep.exe; DestDir: {tmp}; Flags: dontcopy
Source: ISFAEFiles\arc.ini; DestDir: {tmp}; Flags: dontcopy

.......


[ArcFiles]
.......
Source: {src}\Data.bin; DestDir: {app}\data; Disk: 1; Config: {tmp}\arc.ini
.......
{#ParseArcFiles}

[_Code]
.......
function BeforeExtract(): Boolean;
begin
// Здесь можно извлечь необходимые файлы перед распаковкой
ExtractTemporaryFile('srep.exe');
ExtractTemporaryFile('arc.ini');

Result:= True;
end;
.......
Желтым - разделы куда ставить
Оранжевым - что надо добавить
спасибо за ответ, а где указать пароль от архива Data.bin ?

архивы связкой lolz+srep нормально распаковалисьа вот с xtool выдет ошибку, хотя все временные файлы на месте
[14:31:44,883] fa_callback(error, -2, 0, ERROR: unsupported compression method xprecomp+srep+lolz:mtt1:mt12:d64m)
[14:31:44,886] fa_callback(error, -2, 0, ERROR: archive data corrupted (decompression fails))
 
Последнее редактирование:

Andreo Fadio

Старожил
а где указать пароль от архива Data.bin ?
там же:
Код:
Source: {src}\Data.bin; DestDir: {app}\data; Disk: 1; Password: IamPassword123; Config: {tmp}\arc.ini
вот с xtool выдет ошибку, хотя все временные файлы на месте
ему и arc.ini нужно правильно заполненный, а у вас еще и метод xprecomp его нужно прописать тоже в arc.ini и файлы добросить.
 
Сверху