FileForums

FileForums (https://fileforums.com/index.php)
-   Conversion Tutorials (https://fileforums.com/forumdisplay.php?f=55)
-   -   ISRarEx - Advanced RAR Extraction API for Inno Setup (https://fileforums.com/showthread.php?t=107050)

BLACKFIRE69 08-04-2026 14:42

ISRarEx - Advanced RAR Extraction API for Inno Setup
 
7 Attachment(s)
ISRarEx - Advanced RAR Extraction API for Inno Setup
======================================

Code:

> Overview:
ISRarEx is a high-performance extraction library meticulously crafted
for Inno Setup. It provides a robust interface for handling RAR
archives, offering advanced progress tracking, multi-part archive
support, and precise extraction metrics that standard tools often lack.

> Specifications:
- Version        : v0.1
- Author        : BLACKFIRE69
- Build                : 6997A400
- Compatibility        : Inno Setup v6.0 or later (Required)
- License      : Proprietary (See LICENSE file for details)
- Tested Engine        : WinRAR v7.20 (Latest)

Code:

> Key Features:
- Flexible Extraction Modes: Full support for Normal archives,
  Splitted (multi-volume) archives, and Combined sets.
- Advanced Progress Tracking: Real-time metrics for Overall Progress,
  Current Disk Progress, and Extracted/Total File Counts.
- Performance Metrics: Accurate Current and Average Speed (MB/s).
- Time Management: Intelligent "Time Remaining" and "Elapsed Time"
  tracking with three customizable display formats.
- Process Control: Built-in functions to Suspend, Resume, or Stop
  the extraction process safely.
- UI Stability: Includes "Calc Accuracy" reduction logic to prevent
  erratic jumping in speed and ETA displays.
- Localization: Easily switch between languages using external .ini
  configuration files.

Code:

> Supported File Structures:
ISRarEx supports complex distribution layouts, including nested
volumes and mixed archive types:

[ROOT]
 ├── data1.rar
 ├── Disks/
 │    ├── Disk1/
 │    │    ├── Sonic 2.part01.rar
 │    │    └── Sonic 2.part02.rar
 │    └── Disk2/
 │        ├── Sonic 2.part03.rar
 │        └── Sonic 2.part04.rar
 ├── data3.rar
 └── Setup.exe

> Distribution Files:
- ISRarEx.dll        — Core API Library.
- UnRAR_32.dll        — UnRAR engine integration.
- ISRarEx.iss        — Header for Inno Setup.
- English.ini / Russian.ini — Language configuration files.

- Quick Start Examples -

* Example 1: Normal Archives

Code:

{Code]
#include "ISRarEx.iss"

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssInstall then
  begin
    { - ADDING DISKS - }
    repeat
      if not AddArchiveEntry('data1.rar') then Break;
      if not AddArchiveEntry('data2.rar') then Break;
      if not AddArchiveEntry('data3.rar') then Break;
    until true;

    { - INITIALIZE & EXTRACT - }
    if ISRarExInitEx(2, @ProgressCallbackEx) then
    begin
      repeat
        for i := 1 to ISRarExDiskCount do
        begin
          if not ISRarExExtract(i) then Break;
        end;
      until true;

      ISRarExStop;
    end;
  end;
end;

* Example 2: Normal + Splitted Archives

Code:

{Code]
#include "ISRarEx.iss"

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssInstall then
  begin
    { - ADDING DISKS - }
    repeat
      if not AddArchiveEntry('data1.rar') then Break;
      if not AddArchiveEntry('Sonic 2.part01.rar') then Break;
      if not AddArchiveEntry('data3.rar') then Break;
    until true;

    { - INITIALIZE & EXTRACT - }
    if ISRarExInitEx(2, @ProgressCallbackEx) then
    begin
      repeat
        for i := 1 to ISRarExDiskCount do
        begin
          if not ISRarExExtract(i) then Break;
        end;
      until true;

      ISRarExStop;
    end;
  end;
end;

.

BLACKFIRE69 19-04-2026 15:31

ISRarEx v0.1 — Update
 
1 Attachment(s)
ISRarEx v0.1 — Update 01 (LibOnly)

* Bug fixes only. No API changes.

Code:

- Fixed: `ISRarExReduceCalcAccuracy` did not perform as expected in v0.1
  due to an internal architectural change introduced in this version.
  This has been corrected and the function now behaves as intended again.

 - Fixed: `ISRarExCallbackInterval` silently ignored some values,
  causing progress updates to appear sluggish or unresponsive regardless
  of the configured interval. The valid input range has been restored.

 - Fixed: State inconsistency where accuracy reduction settings could
  behave unpredictably across multiple init calls in the same session.

* Notes:

Code:

- Drop-in library replacement. No script-side changes required.

demon964 26-04-2026 10:58

Is it possible to integrate this template into Inno Setup together with your RAR script?

When installing large games, users often may not have enough free disk space. I need a feature that deletes already extracted data/archive parts in real time during extraction, in order to reduce the required free space.

https://github.com/auto-Dog/delete_when_unzip


All times are GMT -7. The time now is 17:21.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
FileForums @ https://fileforums.com