BLACKFIRE69
Новичок
ISRarEx - Advanced RAR Extraction API for Inno Setup
===================================================
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 are often lacking.
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)
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
Supported File Structures:
ISRarEx supports complex distribution layouts, including nested volumes and mixed archive types:
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
Example 2: Normal + Splitted Archives





===================================================
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 are often lacking.
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)
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
Supported File Structures:
ISRarEx supports complex distribution layouts, including nested volumes and mixed archive types:
Форматирование (BB-код):
[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
Форматирование (BB-код):
{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
Форматирование (BB-код):
{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;




