Lazarus
Home
Help
TinyPortal
Search
Login
Register
Lazarus
»
Forum
»
Announcements
»
Third party
»
Pure Pascal UnRAR port
Free Pascal
Website
Downloads
Wiki
Documentation
Bugtracker
Mailing List
Lazarus
Website
Downloads (Laz+FPC)
Packages (OPM)
FAQ
Wiki
Documentation (RTL/FCL/LCL)
Bugtracker
CCR Bugs
GIT
Mailing List
Other languages
Foundation
Website
Useful Wiki Links
Project Roadmap
Getting the Source
Screenshots
How to use the forum
Forum Rules
About donations (wiki)
Bookstore
Computer Math and Games in Pascal
(preview)
Lazarus Handbook
Search
Advanced search
Recent
Who can explain this ?
by
J-G
[
Today
at 09:16:17 pm]
Conscious Artificial Inte...
by
schuler
[
Today
at 09:11:29 pm]
TDWEdit
by
Ed78z
[
Today
at 08:24:43 pm]
Trayslate 1.3.0 - Free tr...
by
AlexanderT
[
Today
at 08:12:24 pm]
TShellListView
by
Ed78z
[
Today
at 07:59:41 pm]
[SOLVED] Curious why this...
by
1HuntnMan
[
Today
at 07:53:21 pm]
[New Component] ExtTabCtr...
by
d7_2_laz
[
Today
at 07:50:45 pm]
IndySecOpenSSL is now ava...
by
Thaddy
[
Today
at 06:24:37 pm]
Toying Pascal Documenting...
by
paule32
[
Today
at 05:22:32 pm]
Gitlab site history date.
by
Fred vS
[
Today
at 05:07:59 pm]
Cursor changes to arrow o...
by
atlatl
[
Today
at 05:02:45 pm]
Sizes and SizeInt
by
440bx
[
Today
at 02:15:13 pm]
how to add a ForEach call...
by
jamie
[
Today
at 12:42:04 pm]
XLibre, finally and fortu...
by
kagamma
[
Today
at 12:15:10 pm]
[SOLVED] Watches panel is...
by
CM630
[
Today
at 12:06:33 pm]
How to monitor changes in...
by
Martin_fr
[
Today
at 11:55:18 am]
Printer Info
by
J-G
[
Today
at 11:26:52 am]
Strange Behaviour at Runt...
by
andrew Bubble
[
Today
at 11:19:45 am]
Can I get the position an...
by
CM630
[
Today
at 11:00:33 am]
WEBP, no DLLs
by
CM630
[
Today
at 08:52:43 am]
Dataset EnableControls/Di...
by
Sharfik
[
Today
at 07:40:21 am]
TVirtualDBTreeEx and upda...
by
Sharfik
[
Today
at 07:36:30 am]
made hooking newinstance ...
by
Thaddy
[
Today
at 06:56:17 am]
Interesting video
by
Curt Carpenter
[
Today
at 04:28:27 am]
I found an actual use for...
by
jamie
[June 09, 2026, 11:48:04 pm]
« previous
next »
Print
Pages: [
1
]
Author
Topic: Pure Pascal UnRAR port (Read 649 times)
Tomxe
Full Member
Posts: 104
Pure Pascal UnRAR port
«
on:
April 30, 2026, 08:54:38 am »
License: MIT
https://github.com/Xelitan/Delphi-Free-Pascal-port-of-Unrar---RAR-decompressor/
Listing files:
Code: Pascal
[Select]
[+]
[-]
uses
Unrar
;
var
rar
:
TRarUnpacker
;
ADate
:
TDateTime
;
ASize
:
Int64
;
AName
:
String
;
begin
rar
:
=
TRarUnpacker
.
Create
(
'pass.rar'
,
'pass'
)
;
if
not
rar
.
CheckPassword
then
begin
ShowMessage
(
'Incorrect password!'
)
;
rar
.
Free
;
Exit
;
end
;
while
rar
.
NextEntry
(
AName
,
ASize
,
ADate
)
do
begin
Memo1
.
Lines
.
Add
(
AName
)
;
end
;
rar
.
Free
;
Extracting:
Code: Pascal
[Select]
[+]
[-]
var
rar
:
TRarUnpacker
;
ADate
:
TDateTime
;
ASize
:
Int64
;
AName
:
String
;
F
:
TFileStream
;
OutDir
,
FullPath
:
String
;
begin
OutDir
:
=
'OutputDir\'
;
// destination directory
rar
:
=
TRarUnpacker
.
Create
(
'pass.rar'
,
''
)
;
try
while
rar
.
NextEntry
(
AName
,
ASize
,
ADate
)
do
begin
Memo1
.
Lines
.
Add
(
AName
)
;
FullPath
:
=
IncludeTrailingPathDelimiter
(
OutDir
)
+
AName
;
ForceDirectories
(
ExtractFileDir
(
FullPath
)
)
;
F
:
=
TFileStream
.
Create
(
FullPath
,
fmCreate
or
fmSHareDenyWrite
)
;
try
rar
.
Extract
(
F
)
;
finally
F
.
Free
;
end
;
end
;
finally
rar
.
Free
;
end
;
Logged
Boleeman
Hero Member
Posts: 1158
Re: Pure Pascal UnRAR port
«
Reply #1 on:
May 01, 2026, 12:29:37 pm »
Thanks Tomxe for your great Unrar-Rar compressor code, Zstandard (zstd) compression algorithm, Zpaq and Zstandard compressors.
I love playing around and experimenting with all your codes.
Much Appreciated.
Logged
Tomxe
Full Member
Posts: 104
Re: Pure Pascal UnRAR port
«
Reply #2 on:
May 02, 2026, 08:30:10 am »
Thank you!
I had a long break from coding in Pascal due to health issues but it's better now and I am finishing what I started. Some new libraries might pop up soon
Logged
tooknox
New Member
Posts: 40
Re: Pure Pascal UnRAR port
«
Reply #3 on:
May 02, 2026, 11:33:22 am »
Hey this is really awesome
Just a suggestion though, the repo names are too long you can name it "pUnRAR" (no pun intended...short for pascal unrar) similarly for your lz repos. I mean it's up to you if you want
Logged
AlexTP
Hero Member
Posts: 2713
Re: Pure Pascal UnRAR port
«
Reply #4 on:
May 02, 2026, 12:40:49 pm »
'p' stands also for Python, Perl, PowerShell.
Current long names are almost ok.
Logged
CudaText editor
-
ATSynEdit
-
More from me
Tomxe
Full Member
Posts: 104
Re: Pure Pascal UnRAR port
«
Reply #5 on:
May 02, 2026, 04:54:01 pm »
The names are long to attract more viewers. Units have rather short names.
Logged
tooknox
New Member
Posts: 40
Re: Pure Pascal UnRAR port
«
Reply #6 on:
May 02, 2026, 07:01:58 pm »
Quote from: Tomxe on May 02, 2026, 04:54:01 pm
The names are long to attract more viewers. Units have rather short names.
Well that makes sense. Either way what's there in name. Once again great work !!
Logged
Print
Pages: [
1
]
« previous
next »
Lazarus
»
Forum
»
Announcements
»
Third party
»
Pure Pascal UnRAR port
TinyPortal
© 2005-2018