Closed

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
Project Budget
N/A
Total Bids
3
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);

begin

[url removed, login to view]('B', bind);

end;

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.

Skills Required

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