Closed

Delphi XE2 7zip wrapper - repost 2

This project was awarded to igors233 for $1050 USD.

Get free quotes for a project like this
Employer working
Awarded to:
Skills Required
Project Budget
$250 - $750 USD
Total Bids
4
Project Description

A. Build an interface to the latest versions of [url removed, login to view] exactly as found in

the attached file sevenzipwrap.pas. For your convenience the old sources of

7zip which have been converted into a DLL that exports the functions

declared in [url removed, login to view] have been attached to this email as "7zip wrap

sources for [url removed, login to view]". Note that these sources are almost 10 years old. It

will not be possible to update these because the underlying sources have

changed too much between the 10 year old 7zip sources and the 7zip sources

that are available today.

0) All functions and parameters must be implemented just as in the current

version in order to completely compatible our existing main application

which will use your code.

1) All formats which are available with the current 7zip library have to be

supported for compression, extraction, updates, testing, deletion, etc. This

includes native 7zip formats such as 7z and also third party formats such as

WIM.

2) You must support all compression settings that are available for each

compression format, including stored (no compression) compression settings.

You are free to define your own "compression setting strings" as part of the

lpAdvancedOptions parameter of the compression function. You must also

support setting the number of threads to be used as part of this compression

setting string parameter, because new versions of 7zip are highly

multi-threaded.

3) You must support the highest compression settings that are possible in

the 7zip library for the native 7z format, and also for all other formats

such as ZIP. For example, while producing ZIP compatible archives, 7zip

actually produces files that are smaller than the ZIP files produced by

other archivers such as WinZip - by as much as 10%. Again as another

example, there is an "Ultra" compression setting in 7zip which requires

several gigabytes of memory during compression (and also with very large

extraction memory requirements); these should be fully supported.

4) Some example compression setting strings are provided below for your

convenience. Please note that some of these settings may be obsolete as of

the latest 7zip version, so this is why you are free to define your own

compression setting strings:

1- '-ms=off -mhc=off -m0=None -m0=Copy ' // store data in uncompressed form.

2- '-ms=off -mhc=off -m0=LZMA -m0d=15 -m0mf=hc3 -m0fb=32 ' // compress data

using the LZMA data compression algorithm and a 32 KB buffer for hash

chaining.

3- '-ms=off -mhc=off -m0=LZMA -m0d=21 -m0mf=bt4 -m0fb=32 ' // compress data

using the LZMA data compression algorithm and a 4 MB buffer for binary

trees.

4- '-ms=on -mhc=on -m0=BCJ -m1=LZMA -m1d=23 -m1mf=bt4 -m1fb=64 ' pre-process

data using binary call jump converters to increase compressability, treat

all files as a continuous data stream, and use an 8 MB buffer for LZMA

compression.

5- '-ms=on -mhc=on -m0=BCJ2 -m1=LZMA -m1d=25 -m1mf=bt4b -m1fb=255 -m2=LZMA

-m2d=20 -m2mf=bt4b -m2fb=64 -m3=LZMA -m3d=20 -m3mf=bt4b -m3fb=64 -mb0:1

-mb0s1:2 -mb0s2:3 ' // pre-process data, compress from a continuous stream,

and use a 32 MB LZMA buffer.

5) Please ensure that you support both the older LZMA compression standard

and the newer LZMA2 compression standard when creating 7zip archives. This

can again be decided from the compression settings string parameter.

6) All work should be done with Embarcadero RAD Studio Delphi XE2. You

should not be creating any external C++ DLL as in the example provided;

because now it is possible to build direct Delphi interfaces to [url removed, login to view] from

a single Delphi unit and/or project.

7) Full Unicode support is required - both for storing Unicode file names

inside archives, and for extracting files/compressing files inside archives

to/from Unicode folder paths on the real file system.

8) The current (old version) DLL sources are at 7zipwrap_sources for [url removed, login to view]

only\src\7zipWrap\src\[url removed, login to view] - it is a Visual C++ 2003 project.

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online