KpGb Software


VCLZip Pro 4


VCLZip Pro 4.00 is now available for registration.

Please visit the new VCLZip Forums where you will find a special forum just for this purpose. If you prefer, you can send me email at VCLZip-support@4warding.com


DOWNLOAD VCLZIP Pro 4.00 EVALUATION:


This evaluation is a complete working version of VCLZip Pro and VCLUnZip Pro. The only restriction is that it will only run while the Delphi or BCB IDE is up and running.

1) Run the following install program to install the component files (DCU, DCR, OBJ, HPP and Package files) for your version of Delphi or BCB. The help files are included in the installation also.

VCLZipPro400b1_Eval.zip

2) Here is the file containing the Example Demonstration Projects (including a complete Zip Utility and a simple example using streams) :

VCLZip4_Delphi_Demo_Zip_Utility.exe (Delphi Project Code to the VCLZip zip utility example)

(The matching BCB Demo Zip Utility will be uploaded shortly)

Contact vclzip-support@4warding.com if you find any problems. Also, while not required ofcourse, I would love to get an email message from you if you download the evaluation just so I know. I promise I won't bother you. :-)


Registration:


You may register VCLZip Pro using one of the two following methods

1) SHAREIT REGISTRATION SERVICE - Very flexible as you can pay with your credit card over the internet on a secure server. Or you can pay with cash, check ($US or Eurocheck), and a host of other options. SHAREIT will automatically display instructions as well as send you an email containing instructions for downloading the registered version .

2) With a check directly to me, but only if you can write a $US check. Send me email (vclzip-support@4warding.com) for instructions and further information.

I can always use feedback from anybody that has tried out VCLZip. Be it good or bad I'd appreciate your opinions. If you are looking for a zip library and choose another besides VCLZip, let me know why so that I can take that into account for the future.


VCLZip News Updates and History:

January 25th, 2008:
VCLZip Pro 4.00b3

January 25th, 2008:
VCLZip Pro 4.00b1

November 28th, 2007:
VCLZip Pro 3.10

August 29th, 2005:
VCLZip Pro 3.06

August 7th, 2005:
VCLZip Pro 3.04

New ZLib methods for optimized compression and decompression of single entities of data in standard ZLib format, without the overhead of the PKZip format. This is excellent for compression of data to be sent across the net, compressing web pages (http compliant compression), blobs, etc.

Overloaded TStream Methods for Delphi 4,5, BCB 4, and 5

Special OnGetNextTStream Event for Delphi 4,5, BCB 4, and 5

Capability to use the latest version of ZLib 1.2.1.

Some optimization improvements which should show some improvement in zipping and unzipping speed when using TkpStreams with D4, D5, BCB4, and BCB5.

October 7th, 2003:

VCLZip Pro is here...

VCLZip Pro is now available for registration. For those of you who are currently registered users of VCLZip Lite, please send me an email at mailto:vclzip@bigfoot.com to receive a coupon number to enter and receive your discount making VCLZip Pro only $40. Please do not ask for a coupon number unless you are currently a registered user. Please include the name your registration was made under and best of all if you still have it, your reference number that you received when you registered. Anyone who registers VCLZip Pro as an upgrade that is not a VCLZip Lite Registered user will not receive any support.

September 16th, 2003:

VCLZip Pro is coming...

VCLZip has been quite stable over the past year as you may have guessed from how long its been since I last updated this web page. There have been very few bugs reported over that year. During that time I have been working slowly on the next generation of VCLZip and now it is about ready. In fact it is ready for you to evaluate. Just click here to have a look at what VCLZip Pro has to offer.

You will notice that I now refer to the original VCLZip 2.X as VCLZip Lite and the new VCLZip 3.X as VCLZip Pro. VCLZip Pro is a major upgrade from VCLZip Lite as it allows you to zip an almost unlimited number of almost unlimited size files. It is also faster now as it uses the standard ZLib C library for its compression and decompression engines.

While VCLZip Lite will still be available, especially for those that need zip/unzip capabilities in the older versions of Delphi (including Delphi 1) and BCB, all future enhancements will be taking place with VCLZip Pro. In fact VCLZip Pro already has more features added beyond VCLZip Lite including more properties, methods, and events.

Please do me (and yourself) a favor and try VCLZip Pro out prior to it's being available for registration. Your feedback will make it a better product. In some cases, some suggestions may still go into the initial release, while others will be considered for follow-up releases. There is a new VCLZip Forum where you can provide feedback and ask questions as well as swap ideas with other VCLZip developers.

Pricing for VCLZip Pro is set to be $89.95 per developer (7 registrations = site license) and $40 for an upgrade from VCLZip Lite. Note that the price for an upgrade is only the difference between the two registration costs as VCLZip Lite is still just $49.95. So don't worry if you still want to purchase VCLZip Lite now, you won't lose out by upgrading later. Also, keep in mind that those who purchased VCLZip for $49.95, five years ago, have never paid for an upgrade since then. I don't charge yearly support fees or anything like that. You get all the source code for all versions of Delphi/BCB with registration of either verion of VCLZip.< /FONT >

I expect that you should be able to register VCLZip Pro in about 2 weeks. I'll keep you posted here but you will find more up-to-date information on the forum. Please bear with me as I finish updating the Help File and clean up other loose ends. See you in the forum!

September 9th, 2002:

The registered version of VCLZip now works with Delphi 7. You'll want to download the BUG FIX UPDATE FILE to update VCLZip 2.23 to work with D7.

April 22, 2002:

A list of the currently reported bugs and their fixes can now be found here

VCLZip 2.23 is now available

July 21st, 2001:

Version 2.22 is now available for download. Here are the major bug fixes and enhancements:

December 12th, 2000:

Version 2.21

December 20th, 1999:

Version 2.20 is now available. There are new features in the following categories:

Performance

There are a few code optimizations that should speed up the zipping process slightly.

Spanned Zip Files

A new feature, turned on with the SaveZipInfoOnFirstDisk allows VCLZip to create spanned zip files that can be opened starting with the first disk instead of the normally required last disk of the spanned disk set by saving a Zip Configuration File on the first disk. This feature can be used even if creating the spanned zip file directly to your hard drive. The spanned zip file is still pkzip compatible and can still be opened by other zip utilities from the last disk.

A new property, SaveOnFirstDisk, allows you to save room on the first disk when creating a spanned zip file, to allow
room for other files, such as setup programs, data files.

Spanned zip files can now be directed toward disks greater than 2 gig in size as long as you are using Delphi 5 or BCB 4.

UnZipping

The new Selected indexed property offers another way to flag files to be unzipped. Files that have the Selected
property set to True can be unzipped using the UnZipSelected method. The Selected property will be cleared
(set to False) for each file as it is unzipped, but you can also call the ClearSelected method to clear them all. At anytime
the NumSelected property can be checked to see how many files have been selected.

Also, the UnZipToBufferByIndex and UnZipToStreamByIndex methods allow you to unzip files specified
by their index instead of by name or wildcard.

The BufferLength property allows buffered output (buffer smaller than the total uncompressed filesize) when unzipping
directly to memory. This will cause the OnGetNextBuffer Event to be called everytime BufferLength bytes have been
output by VCLZip.

Modified to work in all ways with zip files that have "extra fields" in their headers. These tend to be quite rare, but they do show up from time to time.

Zipping

Added a property called FileOpenMode which allows you to define the file open mode for files when they are opened to be zipped.

Added a Retry parameter to the OnSkippingFile Event that can be used to re-attempt to open a file for zipping that is open by another process. This gives the chance to close the file and continue with the zipping process rather than having to start over again.

Added a ENotEnoughRoom exception which will be thrown if there is not enough room to write to the archive, i.e. out of disk space.

The new OnUpdate Event gets fired when updating or freshening an existing archive. It is triggered for each file that already
exists in the archive as it is either replaced or kept in the updated archive.

The AddDirEntriesOnRecurse property will cause separate directory entries to be included in archives when doing recursive zips through
subdirectories.

Integrity Checking

A new method, CheckArchive, will perform an integrity check on all files in an archive. This is much faster than using FileIsOK
on each file if testing all files in an archive with VERY MANY files.

Further improved checking for corrupted zip files when opening zip files.

Encryption

The following new properties and methods allow lower level work with password encrypted archives:

DecryptHeader Property - Gets the decryption header for a particular compressed file in an archive
GetDecryptHeaderPtr Property - Same as DecryptHeader but easier to use in BCB.

DecryptHeaderByte Method - Tests a password against the decryption header found in the DecryptHeader property.
GetDecryptHeaderByteByPtr Method - Same as DecryptHeaderByte but easier to use in BCB.

Self Exctracting Executable

Changes were made to the ZIPSFX32.BIN stub itself:

Miscellaneous

The behavior of the OnInCompleteZip Event has been greatly improved. You can now use this event to ask the user to
insert the last disk of a spanned disk set rather than having to handle this situation from outside VCLZip.

The Help File was improved.

April 18th 1998:

There are lots of new features and improvements for version 2.18. Read the list closely to find ones that are most important to you:

1) Thanks to the hard work of a fellow registered user, added the capability to remove all dependencies on the Dialogs, Forms, Controls, and FileCtrl units by defining the conditional MAKESMALL, which results in a smaller footprint. This can be quite useful when putting VCLZip into a DLL for instance. In order to make this work, go into your Project | Options and select the Directories/Conditionals tab and enter MAKESMALL in the conditional defines text box. In Delphi you can add this conditinal define to the project options of your application that uses VCLZip and then do a "build all". In BCB you will have to add this to the project options of the package that contains VCLZip and then rebuild the package.

If you define MAKESMALL, the only things you lose are:

a) ZIP file open dialog box that appears when the ZipName is set to "?"
b) Select Directory dialog box that appears when the DestDir is set to "?"
c) Changing the cursor to an hour glass during some operations.
d) No long filename support in Delphi 1

2) Made VCLZip completely BCB4 compatible.

3) Added some exception handling to KPUNZIPP and KPINFLT, mainly to handle unexpected situations when wrong passwords are entered. This fixes the problem with PRP, the password recovery program.

4) For Borland C++ Builder, changed any COMP types to double, getting rid of the compiler warnings for unsupported comp type. This affects the OnStartZipInfo and OnStartUnZipInfo events, so
you'll have to change the comp parameter to double in these events if you use them (in both your header files and in the CPP files)
.

5) Modified OnStartUnZip event so that FName (the filename of the file that is about to be unzipped along with complete path) is now a VAR parameter and can be modified. This allows you to change the path and name of a file that is about to be unzipped. This is especially helpful in applications like Install Programs.

NOTE: You will need to change your current code to add the VAR to the event definition and implementation if you already use this event in your application. (In BCB, add a & just before the parameter instead of VAR)


6) Moved many type definitions to VCLUNZIP.PAS so that kpZipObj won't have to be included in your USES list.

7) Fixed bug that caused GPF when setting Zip Comment to '' (empty string).

8) Moved strings in VCLZip/VCLUnZip into a string table, making the code size a little smaller as well as making it much easier to localize string information. However you have the option of not using the new string table, for whatever reason, by defining NO_RES in your project options (in the conditional defines text box on the Directories/Conditionals tab).

9) Removed the need for several files. No longer included are kpstrm.res, kpstrm.rc, kpsconst.res, kpsconst.rc, kpstres.pas, and for Delphi 1, kpdrvs.pas. In some cases the need for these files was eliminated and in other cases just rolled into the newly included kpzcnst.rc, kpzcnst.pas, and kpzcnst.res. Definining NO_RES in your project options will elimiate the need for these new files but will make your code size slightly larger and you won't be able to localize your application without changing VCLZip source code.

10) Modified the OnFilePercentDone and OnTotalPercentDone progress events to work better when creating spanned disk sets and blocked zip sets. They no longer report 100% when the compressed file still has to be copied to disk.

11) Added the ReplaceReadOnly property. Setting this to true will allow files with the ReadOnly attribute to be replaced during the unzip process.

12) Added the ifNewer and ifOlder options to the OverwriteMode property. (This had somehow made it into the help file but not into VCLUnZip)

13) Added the SFXToZip method which will convert an SFX file to a regular zip file. The header pointers will be properly adjusted during the conversion.

14) Fixed a problem where the OnGetNextDisk event would always revert to the DefaultGetNextDisk method instead of what you entered into the Object Inspector each time your project was re-opened.

15) Fixed a bug that caused CRC errors when unzipping files from spanned disk sets if they were STORED (no compression) and spanned across disks.

16) Added the OnZipComplete and OnUnZipComplete events. If defined, these will fire at the very end of a zip or unzip operation (after all files have been processed, not after each file). These events will rarely be used since, normally you will be able to do the same thing at the point that the call to Zip or UnZip returns, but these events can be useful when using VCLZip in threads where in certain circumstances the return from the Zip or UnZip methods are not seen.

17) Creation of SFX files has never been easier!!! The addition of the MakeNewSFX method allows you to create Self Extracting Executables without the need to create a zip file first. The files that you specify in the FilesList property will be zipped, using all the normal VCLZip property settings, and the SFX will be created, all in one step! In addition, you can create configurable SFX files using this method, and you can do this especially easy by adding the new unit kpSFXOpt to your application's USES list and using the new 32bit SFX stub that is now distributed with VCLZip. This allows you to easily set things like SFX Dialog caption, default target extraction directory, file to launch after extraction, etc.

18) Fixed a memory leak that only affects applications using VCLZip that are compiled with Delphi 2, and that use wildcard specifications in the FilesList property.

March 1st 1998:

I've added an evaluation version and a demo project for C++Builder 3. Please let me know if I have left anything out of these as this is a first pass, so please bear with me. I have not yet modified the help file yet for BCB, so for now, you'll have to go by the Delphi help file (for the most part just use the C pointer reference '->' instead of the usual Delphi '.'). The demo project is pretty much the same complete Zip Utility example that comes with the Delphi demos except that it has been completely re-written in BCB 3. I'll be re-writing the Streams example in BCB too given time. I'll work on adding a simpler example project too.< /FONT>

Feb 17th 1998:

Version 2.17a is now available for download. Just some minor bug fixes are all that will be found in this version:

Registered users who already downloaded the source for version 2.17 may retrieve a smaller zip file with only the modified files in it.

Feb 8th 1998:

VCLZip 2.17 is now available in the download area. I had not planned on any upgrades before version 3.0, but a lack of time to devote to version 3.0 development prompted me to a new version with some of the features that people have been asking for. New in version 2.17 are:

I still don't have a guess as to a date that version 3.0 will be available. I'll post information as soon as I do though.

PLEASE let me know if you find any problems at all with version 2.17.

October 25th 1997:

VCLZip 2.16 is now the production version. If you previously downloaded version 2.16 (as a beta) you should download this newer version as there have been a few bug fixes.

October 4th 1997:

VCLZip 2.15 is now the production version when you register. VCLZip 2.16 is now available for download and it is now currently considered to be the beta release. It is also the evaluation version.The only real change in VCLZip 2.16 is a change in how the OnSkippingFile now works. OnSkippingFile will now correctly be called when VCLZip tries to zip a file that is locked by another application. As always, VCLZip will continue with the next file, but previously you were not notified that such files were skipped in the zip process.

This does however make VCLZip 2.16 slightly backward in-compatible with version 2.15 and earlier if you are using the OnSkippingFile event, because of an additional parameter. Please see the OnSkippingFile Event in the Help File for details on the difference between the version 2.15 and and 2.16 implementations.

The source code for VCLZip 2.16 is also available to registered users.

October 4th 1997:

VCLZip 2.15 is now available for download. For registered users it will be considered to be a beta for about another week. Modifications for 2.15 include:

August 31st 1997:

A bug was found in the evaluation version of VCLZip only, so a new 2.14 distribution is now in the download area. The effect of the bug was to not allow the evaluation version to work properly if the VCLZip component was created dynamically rather than statically dropped on a form. This problem ONLY affected the evaluation version, so if you are already a registered user, you do not need new source code.

August 26th 1997:

An evaluation version of VCLZip 2.14 is now available.

August 13th 1997:

VCLZip1.FilesList.add('c:\test\w*\mycode*.pas');

would get all PAS files beginning with mycode in subdirectories under TEST that begin with the letter w. Wilcards may be much more complex than this. Please see the help file for more information.  

'>' will force recursion into subdirectories
'|' will force NO-recursion

For instance:

VCLZip1.FilesList.add('>c:\windows\*.ini');< /FONT>

will get all .ini files in and below the windows directory regardless of what the recurse property setting is.

and:

VCLZip1.FilesList.add('|c:\windows\sys*\*.dll');

will get all .dll files in subdirectories of the windows directories that start with 'sys' but will not recurse into any directories below the sys* directories.

  • The [ and ] characters previously used as special wildcard characters have been changed to < and > since [ and ] are valid filename characters. If you still need to use the previous characters for backward compatability, I can show registered users how to easily modify a couple of constants in the source code in order to go back to the old style. See "Using Wildcards" in the help file for more information.
  • A few bug fixes.

Unfortunately an evaluation version of 2.14 isn't quite ready yet. It will be uploaded as soon as possible.

July 10th 1997:

VCLZip 2.13 beta is now available to registered users. A demo of the new version should be available soon. The changes for this version include:

  • New boolean property, ResetArchiveBitOnZip, causes each file's archive bit to be turned off after being zipped.
  • New boolean property, SkipIfArchiveBitNotSet, causes files who's archive bit is not set to be skipped during zipping operations.
  • A few modifications were made to allow more compatibility with BCB 1.

Also, the Help File was improved somewhat. It includes information on the new properties and was cleaned up a little too. You can download that now.

May 10th 1997:

VCLZip 2.12 is now available and it is now the current production version. I even snuck a new feature into this one!! The changes included in this new version are:

  • Added a TempPath property to allow you to determine where VCLZip will create temporary files.
  • Modified VCLZip so that any temporary files created will have unique names to avoid any filename clashes in the temporary directory. This also fixes problem working with archives that reside in the temporary directory.
  • Fixed a RelativePaths bug
  • Fixed a bug which caused a "list out of bounds" error if a file in the FilesList doesn't actually exist

Download version 2.12 now and try it out!!!

May 3rd 1997:

I have added a bug list to this web site in order to keep you up-to-date on the status of bug-fixes. If you experience something that appears to be a bug, check the bug list to see if it may have already been reported. If it has been fixed and you need the fix before the next version will be available, send me an email to see if I can supply you with the source code patch (that is, if you are a registered user ofcourse). If your problem does not appear on the bug list then please report your problem to me and I'll add it to the list.

April 29th 1997:

Version 2.11 Beta is now available. It fixes the following problems which were found in the 2.10 Beta:

  • Fixed password encryption bug for 16 bit.
  • Fixed "invalid pointer operation" when closing application bug.
  • Fixed path device truncation bug which caused inability to modify existing archives in 16 bit.
  • Fixed problem with canceling during wilcard expansion bug.
  • Added capability to better handle corrupted timestamps.
  • Added capability to open and work with SFX files that were created with the COPY/B method (header files not adjusted).
  • Other small bug fixes and code improvements.

April 13th 1997:

I found that I accidentally had the 2.10 beta download links pointing at the same files as the 2.03 downloads. I've fixed those links and am close to uploading a new beta (2.11). I found the following problems that the new beta will address:

  • Creating archives with passwords does not work in 16bit VCLZip (this includes all versions). Unzipping password encrypted files does work however. This will work in the new 2.11 beta due to be out soon.
  • Modifying an existing archive does not work under the current 2.10 beta for 16bit VCLZip. This will work under the new 2.11 beta.

March 29th 1997:

VCLZip 2.10 is now available in BETA form. It appears to be stable but more testing is required. Let me know if you have any problems using version 2.10. This version has some new features...

  • 16 bit VCLZip will now, by default, store long file and path names when running on WIN95 or NT.
  • New property (Store83Names) allows you to force VCLZip to store only DOS 8.3 format file and path names.
  • Better UNC path support.
  • Fixed a bug allowing files to be added to empty archives.

March 13th 1997:

VCLZip 2.03 is now available. This point release fixes sevaral bugs that were found, mostly related to using VCLZip with Delphi 1 as well as a couple other bugs.

  • Volume labels now get written correctly to spanned disk sets in Delphi 1 for all versions of Windows.
  • Delphi 1 VCLZip now correctly recognizes when it is running on Windows NT.
  • Fixed a problem with zipping files in the root directory when StorePaths = True < /FONT >
  • File and Zip Comments are now read correctly from spanned/blocked zip archives.
  • Fixed a bug that was causing "Duplicate Object" errors.

February 15th 1997:

VCLZip 2.02 is now available. Modifications include:

  • Fix for file comments which were supposed to be fixed in version 2.01 but weren't.
  • Fix for stream zipping. Version 2.01 would not create a new archive if using a stream. (The Stream Demo now allows creating new zip files to streams too)
  • A few other minor modifications to further solidify the code.
  • A modification to the Zip Utility Demo which allows unzipping from Blocked zip files as if they were single zip files.
  • Added a read-only, published ThisVersion property which reflects the version of the VCLZip/VCLUnZip that you are currently working with.

February 8th 1997:

VCLZip 2.01 is now available. Modifications include:

  • Fixes for exceptions that were caused when CANCELING a zip or unzip of a
    spanned zip file.
  • Fix for a possible problem when zipping or unzipping a spanned zip file
    when one or more of the compressed files resided on more than 2 of the spanned
    parts.
  • Fix for file comments which were broken in version 2.00.

January 26th 1997:

VCLZip 2.00 is now available as the official version of VCLZip. Download a complete working demo version of VCLZip 2.00 and try it out!

New features of this version include:

  • RelativePaths is a new VCLZip property giving you the option to store relative path information for each file
    instead of complete path information.
  • The RootDir property will now allow you to extract files from an archive that was not previously compressed using the RelativePaths property as if it had been.
  • ArchiveStream is a new VCLUnZip property allowing you to work with archives as in-memory TStreams. The Stream Demo now uses this property demonstrating stream to stream zipping/unzipping.
  • OnStartZipInfo Event now allows you to add a zip comment to a new archive
  • OnStartZip Event now allows you to modify information that is stored with each file just before it is zipped.
  • OnBadPassword Event now allows you to reset the password and retry the same file again.
  • DateTime Property is now also writable along with Filename and Pathname
  • Busy Property is a new property set to True during Zip and UnZip operations.
  • VCLZip is now completely Delphi 1 compatible for both compression and decompression.
  • VCLZip will no longer include the archive that is currently being created in itself when the archive is being created in the same
    directory as files are being zipped from, when wildcards would otherwise include the archive.

I can always use feedback from anybody that has tried out VCLZip. Be it good or bad I'd appreciate your opinions. If you are looking for a zip library and choose another besides VCLZip, let me know why so that I can take that into account for the future.




Contact vclzip-support@4warding.com for further information