Delphi XE2 + 7-Zip Delphi API

This project received 3 bids from talented freelancers with an average bid price of $267 USD.

Get free quotes for a project like this
Employer working
Skills Required
Project Budget
Total Bids
Project Description

We are trying to use the 7-Zip Delphi API
([url removed, login to view]), unfortunately we ran into a problem.

We are having trouble calling the SevenZipSetBindInfo function.

The command line equivalent of what we’re trying to pass is:
" -mb0:1 -mb0s1:2 -mb0s2:3" (without qoutas)
This string gives the desired compression ratio.

This function does the following:

procedure SevenZipSetBindInfo(Arch: I7zOutArchive; const bind: UnicodeString);
[url removed, login to view]('B', bind);

Whatever parameter we pass as "bind" appears to be rejected here.

Now passing this binding string accurately is really important - if we don’t, then the file sizes grow like 15% more according to our existing C++l ibrary solution
and this is not acceptable for us.
We are intended to remove C++ side from our pure Delphi product.

Could you provide me with an estimate of time and price (seperate for each item) to figure out the

1- above issue (binding parameter),
and then to
2- implement a high-level API per the function specifications below?

TPasswordCallback = function(lpPassword: PChar): Integer; stdcall;

TProgressCallback = function(lpCurrentFileName: PChar; uiCompleted,
uiTotal: Int64): Integer; stdcall;

TOverwriteCallback = function(lpArchiveFileName, lpDiskExistingFileName: PChar;
uiArchiveFileSize, uiDiskExistingFileSize: Int64; ftArchiveFileLastWrite,
ftDiskExistingFileLastWrite: TFILETIME): Integer; stdcall;

TErrorCallback = function(lpCurrentFileName: PChar; dwErrorCode: LongWord): Integer; stdcall;

function ListArchiveContents(Archive, Password: String; var Error: String;
Names, Encrypted, Sizes, CompSizes, DateTimes: TStrings;
PasswordCallback: TPasswordCallback; AllowForce: Boolean = True): Boolean;

function ExtractArchiveContents(Archive, Password, Folder: String; WithPath,
Overwrite: Boolean; var Error: String; Items: TStrings; Progress: TProgressCallback;
OverwriteBack: TOverwriteCallback; ErrorBack: TErrorCallback; PasswordBack: TPasswordCallback): Boolean;

function CompressArchiveContents(Archive, Password, Options: String; Kind, Path: Integer;
var Error: String; Items, Recursive: TStrings; Progress: TProgressCallback;
ErrorBack: TErrorCallback): Boolean;

*) Everything must target Unicode versions of Delphi XE2.

*) We will provide a (TEST) sample archive (contains several files with different formats eg: txt, bmp, jpg, exe, npg, avi, mp3, wav etc.)
that has been prepared with our existing C++ interface and expect the same result from your solution. This archive will be the proof of your work.

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