社区
数据库报表
帖子详情
水晶打印时提示:‘server has not yet been opened’,是什么原因引起的
XCX
2005-08-09 10:23:24
水晶打印时提示:‘server has not yet been opened’,是什么原因引起的
...全文
83
回复
打赏
收藏
水晶打印时提示:‘server has not yet been opened’,是什么原因引起的
水晶打印时提示:‘server has not yet been opened’,是什么原因引起的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
S7A驱动720版本
S7A驱动,7.20版本, Version history S7A OPC
server
and FIX driver for Siemens S7/S5 communication via Ethernet TCP/IP, MPI or Profibus Version 7.20 Date: 26.02.2007 Version history ================================================================================================================== Build 224 New Functions: Solv
ed
problems: - The setup program creat
ed
a wrong e-doc link in Windows start menu. Now the proper link to S7A.CHM will be install
ed
- From the S7A power tool it wasn't possible to
open
the online help file. Now it can be
open
ed
and also the context-sensitive help works properly. - When the signal conditioning function "S&M" was us
ed
for a byte value, the driver wrote wrong values to the PLC. Build 223 : New Functions: - The number of support
ed
NetLinks has been increas
ed
from 4 to 64 - Communication error messages will be now display
ed
in the alarm history of iFIX. This helps to detect, trace and solve communication issues. - Support for MATRIX licence key add
ed
. This key does not require a special key driver. It simply ne
ed
s a PC and a windows version which supports USB ports. - When using the driver in conjunction with NetLink adapter, the licensing now can take place by a license code in the NetLink. In this case a separate licence key (dongle) is not ne
ed
ed
. Note: If the connection to the NetLink is disturb
ed
, the driver starts in demo mode, because it can't read out the licence code. If afterwards the connection to the Netlink can be establish
ed
, the driver automatically changes from demo mode to the licenc
ed
mode as long as the demo time has not yet expir
ed
. - Support for S7-200 with CP 243-1 was add
ed
. Solv
ed
problems: - Passing of invalid OPC Item IDs caus
ed
a memory leak of the driver's global memory. After the global memory was exhaust
ed
, the driver crash
ed
. - Writing of string values fail
ed
when using hardware options NULLTERM or SPACEFILL - Wrong OPC timestamp occur
ed
when driver was running in NIO Simulation Mode - The driver could crash when the driver was stopp
ed
(either by hand or when the demo time was expir
ed
) and in the same moment the NetLink connection was disturb
ed
. - Improvements on the seamless switching between primary and backup devices and vice versa. - The passing of invalid OPC Item IDs caus
ed
a memory leak in the driver's global memory. After the global memory was exhaust
ed
, the driver crash
ed
. - The writing of strings fail
ed
when using the hardware options NULLTERM or SPACEFILL Build 222 : New Functions: - The driver can now be register
ed
as a service with the local system account as the log-on account. For more information see the document "S7A_as_Service.PDF" on the installation CD . - The driver now switches "seamless" between primary and backup device and vice versa. Solv
ed
problems: - The field "Default Gateway" has been add
ed
to the NetLink's configuration property page - The string write from the OPC
Server
sometimes fail
ed
. This bug has been fix
ed
- After driver uninstall, not all of the S7A-relat
ed
registry entries were delet
ed
. Now the registry will be completely clean
ed
from S7A registry entries after uninstall. - The Netlink module generat
ed
trace messages to debug window. These trace outputs has been remov
ed
. Build 221 : New Functions: - The information field "Runtime Mode" has been add
ed
to the system statistic display. This shows whether the driver is running in the demo mode or in the licenc
ed
mode (with a valid key). - New control tag: "!RuntimeMode:S7A". A digital (i.e. DI) or analog (i.e. AI) block with the I/O address "!RuntimeMode:S7A" delivers the value 0 (in the F_CV property), when the driver is running in the demo mode, or the value 1, when the driver has found a valid key, and therefore is licenc
ed
. This function is also available via the OPC
server
interface. The same item-ID address format has to be us
ed
as with the tag-I/O address, thus "!RuntimeMode:S7A" - The information field "Device in use" has been add
ed
to the device statistic display. This shows which device (primary or backup-device) is currently active. This state can also be request
ed
via the "!switch" control tag. A digital (i.e. DI) or analog (i.e. AI) block with the I/O address "!switch:
delivers the value 0, when the primary device is active and the value 1 when the backup device is active. For the place holder
in the I/O address the logical name of the driver device, which is request
ed
, must be enter
ed
. Example: "!switch:D11" delivers the state of the driver device with the name "D11". This function is also available via the OPC
server
interface. The same address format has to be us
ed
for the tag-I/O address as for the item-ID, thus "!switch:
" - At the channel parameter dialog for the communicatiomn way "S7 TCP/IP" and "MPI/PB CIF", the combo box "Conn.Type" has been add
ed
, which now enables the selection of the connection types "PG", "OP" and "other". Until now, a PG connection was us
ed
. - In the device dialog of the communication way "MPI/PB CIF", the input fields "Rack:" and "slot no. of CPU" have been add
ed
. This extension now allows the connection to "external" Profibus- CPs (CP 342/443-5 or 343/443-5). The Profibus station address of the Profibus CP is stat
ed
in the MPI/PB address field. The rack and slot number of the S7-CPU must be stat
ed
in the corresponding fields. Please make sure that slot number of the CPU is enter
ed
and not of the Profibus-CP!! - The driver now supports the different date and time data types of the S7 PLC. See Topic "Hardware Options for OPC String and TX-Blocks to support S7 date and time data types" in the S7A online help for detail
ed
information. Build 220 : Solv
ed
problems: - The own address of CIF50 MPI/PB communication way was limit
ed
to 31. Now the limit is 126. - Bug-fix in PG-PC Interface (CP5611) communication way. Device could be disabl
ed
from polling, after CP5611 sent a specific sequence of communication errors. Build 219 : Solv
ed
problems: Improvements and new functions: - New Parameter "Max Gap (Bytes)" on Setup parameter property page "Advanc
ed
". This parameter defines the maximum address gap between an existing and a new block at which the driver automatically appends the new block to the existing. If the address gap is greater, then the driver creates a new data block. This functionality is active, when the data block auto create option is set on. - New Radio Button selection "Show Window" on Setup parameter property page "Advanc
ed
" The driver automatically
open
s its window which shows trace log messages useful for trouble shooting, when the "Yes" Radio button is on. - New HTML Help Build 218 : Solv
ed
problems: - Problems with datablocks which have a length between 180 and 200 bytes. - Unsufficient exception handling in S7AMemory.Dll caus
ed
blocking of driver and all other clients (WSACTASK, Workspace, etc.) which reads data from the driver. - Error in MIX Read function could cause blocking of data blocks Build 217 : Solv
ed
problems: - In configurations with data blocks which have a primary rate of zero (as fast as possible), it sometimes happen
ed
that write requests were "stuck" in the write queue. - Sporadic locks of data blocks after the driver was switch
ed
from the primary device to the backup device Improvements and new functions: - Improv
ed
error and timeout handling on communication faults. The reply timeout on the device configuration page can no longer be configur
ed
. Instead it will be deriv
ed
from the TCP/IP timeout value, configur
ed
on the channel configuration page. The value (in seconds) of reply timeout always is 1 second higher than the TCP/IP timeout. This ensures, that the logical read/write request (time-limit
ed
by reply timeout value) will not be cancell
ed
(by timeout) before the physical request (time-limit
ed
by TCP/IP timeout value) is finish
ed
regulary or through the timeout. - The NIO Simulation mode has been expand
ed
. If it is set "ON" the polling of data blocks will be disabl
ed
, due to which no communication errors will arise, as long as a PLC hardware is not connect
ed
to the driver. In this mode the iFix data base blocks reads the value of zero or respectively, the last value written to the driver`s output data area. - "!SyncPoll" and "!SyncSend" have been add
ed
to allow e.g. an
ED
A application to read/write a data block synchronously Build 216 : Solv
ed
problems: (06.06.05) - Reset of statistic counters fail
ed
Build 215 : Solv
ed
problems: (31.05.05) - An error in the OLE interface methods ReadValue ()and WriteValue() was correct
ed
. These functions can now be us
ed
for example,within the Excel program, to access data block values. - Datablocks stopp
ed
polling after an 'unknown error' was return
ed
by CP5611 Build 214 : Solv
ed
problems: - Syncronous reads/writes from concurrent OPC clients now work properly New function: - Performance has been improv
ed
, especially in configuration with a lot of short data blocks. - system, channel, driver and data block static display has been extend
ed
Build 213 : Solv
ed
problems: - No reconnect after the MPI/Profibus connection between CP5611 and the PLC was abort
ed
. - S7ADRV.EXE could crash on Multi Processor Systems or Systems with Hyperthreading when error messages (e.g. "Unable to connect to MPI station") were put to driver's log window from different threads concurrently. Build 212 : Solv
ed
problems: - The AGLink error code -1268 (Unknown error message of the PLC) caus
ed
a blocking of the device. Now the device will be clos
ed
and re-
open
ed
to recover the error. - under very seldom conditions a AGLink error caus
ed
a crash of S7ADRV.EXE Build 211 : Solv
ed
problems: - Setup of TCP/IP parameters fail
ed
with error -510. Problem has been solv
ed
. - Problems in configurations with more than 8 devices within a channel have been solv
ed
- Import of CSV file from S7A Version 7.16 fail
ed
- Fail
ed
to read the AG State - Configuration of a backup IP address caus
ed
a driver crash when it tri
ed
to switch from primary to backup device Build 210 : New functions: - Communication way MPI/Profibus using Siemens CPs (CP5611, 5613) add
ed
- Communication way MPI/Profibus using Hilscher CIF50 PB add
ed
- Communication to "old" S5 series via TCP/IP add
ed
- The old Sentinel Keys will not support
ed
any longer - Check Box "Disable comm alarming" in datablock configuration allows to suppress the COMM alarms of Tags which addresses a driver datablock which is in communication error state. - Now the OPC
server
is OPC DA 2.05 complient Build 210 : Solv
ed
problems: - Under Windows XP the driver crash
ed
when the network cable was not connect
ed
to ethernet card and the driver start
ed
. - A communication error on a single device caus
ed
comm errors on all other devices of the channel Build 201 : Solv
ed
problems: - CSV Import/export works now even for the new communication ways. Build 200 : Solv
ed
problems: - Handle leakage when using asynchron read mode of OPC
server
. This problem was fix
ed
by migration to OPC
server
toolkit version 7.20 New functions: - The driver now supports additional communication ways (serial adapter, NetLink adapter and Siemens CPs (eg. CP5611). It's no longer a pure TCP/IP driver but a general driver for Siemens S7 which allows to connect via TCP/IP, MPI bus or Profibus using different interface hardware (CPs). Build 128 : Solv
ed
problems: - In big configurations with a lot of data blocks when a data block has been written it took too long until this data block was read back. Thus between the write and the read the clients (OPC or FIX) read the old data. Now after a write the driver reads the data block prioriz
ed
. Build 127 : Solv
ed
problems: - The addressing range for PLC's input area and output area has been extend
ed
from 0..255 bytes to 0..4095 bytes. Build 126 : Solv
ed
problems: - Errors in manual and automatic block write functions has been fix
ed
Build 125 : Solv
ed
problems: - Very fast consecutive analog writes to the same data block caus
ed
a crash of the S7ADRV.EXE process. This problem has been solv
ed
. Build 124 : Solv
ed
problems: - Different communication problems has been solv
ed
. - Design of message passing to driver window has chang
ed
to prevent the driver dead locks which occor
ed
under a very seldom conditions. Build 123 : Solv
ed
problems: - Changing of the IP-Address while the driver was running had no effect. This problem has been solv
ed
. Build 122 : New functions: - Now the devices within a channel processing in parallel mode - Add
ed
"Bytes per Second" to device and channel statistics - Logging of read/write requests/responses into a log file is now configurable for individual data blocks. File logging can basically be switch
ed
on/off at register page "advanc
ed
" in power tool's setup screen. - This version is already prepar
ed
to support the S7T loadable database block which will allow to work with the S7 TIME and TIME_OF_DAY data types in iFIX database. - Shar
ed
memory management has been chang
ed
to fix problems with large configurations and multi processor systems. Solv
ed
problems: - In previous versions the S7 rack number had no effect. Now it will be mapp
ed
into the right bit positions of the "call
ed
TSAP" field when
open
ing the ISO connection within the TCP connection. - An error in output simulations mode was fix
ed
. - An error in auto creation of data blocks was fix
ed
. Build 121 : Solv
ed
problems: - When the slot and rack number in the device setings has been chang
ed
, the new values wasn't us
ed
when the connection has been re-establish
ed
. Now the change of these parameters take place imm
ed
iately. Fix
ed
wrong display of Transmitt
ed
and Receiv
ed
counters of mission control's driver statistics Build 120 : Solv
ed
problems: - The OPC
Server
now supports read/write of Control-Tags (eg. !Send or !PollRate). Address syntax is equal to Tag I/O Address within FIX-Database. - Driver doesn't work when a channel with 8 devices was configur
ed
Build 119 : Solv
ed
problems: - Timeout value of channel template was not stor
ed
, thus it had no effect when a new channel was add
ed
. - IP-Address of device template was not stor
ed
, thus it had no effect when a new device was add
ed
. - To avoid duplicate Connection Numbers in Driver Device config, now these Connection Numbers are assign
ed
automatically. The "Connection No" Field in Powertool's device configuration dialog is no longer enabl
ed
for input but for displaying the assign
ed
Connection Number. - The driver devices are now limit
ed
to 8 per channel. - When running S7A driver on W2K without hardlock key (Sentinel or HASP) the Power Tool display
ed
an exception message box and the driver didn't start in demo mode. This problem has been solv
ed
. Build 118 : New function: - Additionaly to the Rainbow Sentinel Key the driver now supports new Aladdin HASP Key. It detects either Sentinel or HASP Key. Solv
ed
problems: - The OPC
Server
now supports String addresses Build 117 : Solv
ed
problems: - Now the Input Data Area of S7 can be read. That was not possible in build version 115 and 116. - The I/O address in data base builder now accepts inputs of adresses without blank between data area identifier and adress index (e.g. D11:Q1.7 or D11:I10.0). - Under a certain condidtion the S7ADrv process runs into a deadlock situation This problem has been solv
ed
. Build 116 : Solv
ed
problems: - Now the switching between primary and backup device can be configur
ed
and us
ed
. If the communication to the primary device fails, the driver automatically switches to the device configur
ed
as backup device. If the connection to the backup device fails, it switches back to the primary device. The switching even can be done by "hand" using a DI Block with I/O address "!switch:
. A F_CV value of 0 means primary device is active, F_CV value 1 means backup device is active. To change the active device just assign the corresponding value to blocks F_CV property. Build 115 : Solv
ed
problems: none New functions: - To make troubleshooting easier, the driver now allowes to log messages to a log file. To enable file logging, set the following registry key value to 1: "HKLM\Software\Intellution\Drivers\S7A\DriverDefaults\WriteLogToFile" By default this value is set to 0 which disables the file logging. The log file is nam
ed
S7ADrv.log and locat
ed
in the drivers default config file path. All messages dispatch
ed
to the driver
server
window will be logg
ed
in the file as well. Caution: The log file will "not" be delet
ed
and re-creat
ed
when driver starts. It's in the users responsibility to watch the size of the log file. If you enable the dispatching of debug level 1 to 3 messages, the log file can become a huge size in a short time!! Build 114 : Solv
ed
problems: - If SAC writes faster to the driver's image table than the driver can write to the PLC, after a while the write queue fill
ed
up to 100%. This version of the driver no longer queues write requests to PLC addresses which already in the queue, but uses the already queu
ed
request by just replacing the old write value by the new value. - In configurations with more than 1 channel, the driver sometimes crash
ed
since This problem has been solv
ed
. - The Send and Receive counts in mission control was swapp
ed
. New functions: - Driver now runs with dongle RN-4BDNBH-B (S7A) and RN-4CKEBH-B (S7A+S7B) Build 113 : Solv
ed
problems: - Error in S7AMemory.dll caus
ed
problem in applications with very large configurations (where the shar
ed
memory "S7A_InputArea" exce
ed
ed
64k). The data type information stor
ed
in the Input Area was overwritten to WORD. Thus the SAC Task interpret
ed
the block values always as an integer no matter what data type was set for the data block in power tool. New functions: - none Build 112 : Solv
ed
problems: - CSV File import now works fine - When choos
ed
S7M 1.x compatible address syntax, the data type combo box was been set to a data type other that sav
ed
before. New functions: - The S7-TIME format now is support
ed
. Use a TX-blocks and the data type identifier 'T' in the Tag's I/O address to address a double word which contains a value in S7-TIME format (e.g. D11.DB100.DBT 10). Write is also possible. Build 111 : Solv
ed
problems: - Sometimes the CPU load rais
ed
to 100% when writing values. - Read/write of the last byte of a data block fail
ed
. - Block write in manaul or auto mode fail
ed
- In data block statistics sreen sometimes "stats error windows" occur
ed
because some error codes could not be found in AGLink_Error.txt file. New functions: - none Build 110 : Solv
ed
problems: - none New functions: - Add
ed
hardware options NULLTERM and SPACEFILL to control string write. Build 109 : Solv
ed
problems: - Sometimes driver hangs after communication fail
ed
. Occur
ed
when a lot of data blocks with a very short poll time has been configur
ed
and process
ed
. New functions: - none
VclZip pro v3.10.1
VCLZip Native Delphi Zip/UnZip Component! (VCLZip Lite: Version 2.23 April 14th, 2002) (VCLZip Pro: Version 3.10 Buid 1 - November 25th, 2007) IMPORTANT: If installing the register
ed
version, please be sure to always re-install/rebuild the components (VCLZip and VCLUnZip) to the component pallette (or rebuild the design time package) so that the ThisVersion property and any other new properties will be properly updat
ed
. If your application still does not run without the IDE,
open
up VCLZip's package, click on options and look at the Directories/Conditionals tab. If KPDEMO is defin
ed
, remove it and recompile the package. ***IMPORTANT: Please remember do not install these components into a package by the name of either VCLZip or VCLUnZip. You will receive an error if you do. PLEASE TAKE A LOOK AT THE "WHAT's NEW IN THIS VERSION" LINK IN THE HELP FILE AS IT HAS CONVENIENT LINKS TO ALL OF THE NEW TOPICS. ==================== Version 3.10 Build 1 - Several bug fixes. - Add
ed
support for Delphi 2006, 2007 - Add
ed
support for BCB 2006, 2007 - Improv
ed
memory performance when working with archives containing extremely high number of compress
ed
files. ==================== Version 3.06 Build 2 Made Delphi 2005 compatible Other assort
ed
fixes ==================== Version 3.05 Build 1 Fix
ed
a lot of incompatabilities between VCLZip and WinZip Other assort
ed
fixes ==================== Version 3.04 Build 1 New ZLib methods for optimiz
ed
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. - ZLibCompressStream - ZLibDecompressStream - ZLibCompressBuffer - ZLibDecompressBuffer - ZLibCompressString - ZLibDecompressString Overload
ed
TStream Methods for Delphi 4,5, BCB 4, and 5 - UnZipToStream - UnZipToStreamByIndex - ZipFromStream Special OnGetNextTStream Event for Delphi 4,5, BCB 4, and 5 - Allows zipping multiple TStreams in one process - More efficient than calling ZipFromStream multiple times Capability to use the latest version of ZLib 1.2.1. - VCLZip currently uses 1.4.1 by default. - By defining ZLIB121, VCLZip will use the latest version of ZLib which is includ
ed
with the register
ed
version. Some optimization improvements which should show some improvement in zipping and unzipping spe
ed
when using TkpStreams with D4, D5, BCB4, and BCB5. ============ Version 3.03 (VCLZip Pro) - Please test your application thoroughly with this new version of VCLZip Pro. While it has been test
ed
and has even been us
ed
in at least two production applications for several months now prior to initial release, there are so many combinations of property settings, environment differences, and ways to use VCLZip that you should always test VCLZip completely in your application before deploying. *** New Zip64 capabilities, properties, methods and events: - Uncompress
ed
, Compress
ed
, and Archive file sizes can be up to 2^63-1 bytes in length. - You can compress up to 2147483647 files into an archive. This is compatible with PKZip's Zip64 format. - If a file does not extend beyond any of the original limitations (filesizes of 4 gig or 65535 files) then no Zip64 format information is includ
ed
in the archive. - property isZip64 - tells you when you are working with a zip file that is using Zip64 format. Much faster processing due to linking to Zlib object files for compression and decompression routines. Block
ed
Zip Files (spann
ed
zip archives split onto hard drive) - Now completely compatible with PKZip and WinZip split archives file naming format. - For backwards compatability you can tell VCLZip to use the old VCLZip filenaming format by using the BlockMode property. - New method OnFileNameForSplitPart call
ed
just before each split filepart is creat
ed
. VCLZip supplies a default implementation of this method so for most purposes you won't ne
ed
your own. - method DefaultFileNameForSplitPart - VCLZip calls this internally if you don't define your own OnFileNameForSplitPart. You can also call it from your own OnFileNameForSplitPart if you wish to add some processing to the default behavior. - property BlockMode - determines whether VCLZip uses PKZip/WinZip standard naming convention or VCLZip classic method. - method DefaultGetNextDisk - VCLZip calls this internally if you don't define your own OnGetNextDisk. You can also call it from your own OnGetNextDisk event if you wish to add some processing to the default behavior. - Properties for controlling which files are zipp
ed
... - IncludeHiddenFiles - default False; - IncludeSysFiles: - default False; - IncludeReadOnlyFiles: - default True; - IncludeArchiveFiles: - default True; - Event OnGetNextStream - Allows you to zip from multiple streams when using the ZipFromStream method. This improves performance since repeat
ed
calls to ZipFromStream causes the archive to be updat
ed
on each subsequent call. - property ThisBuild - Tells you the current build. See also ThisVersion - property OnHandleMessage - Handles interactive messages with VCLZip. There is a default, so you don't ne
ed
to define your own unless you wish to eliminate interactive messages and handle them on your own. This is helpful if you are using VCLZip as a service or on a web
server
for instance. ******** Upgrading existing applications that use VCLZip 2.X ********** For the most part, existing applications will work as-is. Just install VCLZip 3.X and recompile your code. Here are some things to be aware of though... 1) If your app currently creates mmBlock archives (spann
ed
directly to hard drive) and you define your own OnGetNextDisk in VCLZip 2.X, you should move your code from this event that handles mmBlock events to the new event OnFileNameForSplitPart. However, if you simply rely on VCLZip's default OnGetNextDisk then you don't have to worry about this. 2) If your app creates mmBlock archives, the default naming convention has chang
ed
to match the PKZip/WinZip standard. If you wish to keep the same naming convention then set BlockMode := mbClassic. 3) OnGetNextDisk and OnPrepareNextDisk events are call
ed
for the 1st disk now. VCLZip 2.X only calls these events starting with the 2nd disk. 4) properties Compress
ed
Size[Index], Uncompress
ed
Size[Index], ZipSize are now Int64 types. 5) Delphi 4, Delphi 5, BCB 4, and BCB5 are all capable of using the Zip64 format. However they use the TkpHugeStream decendants which act just like TStreams except they handle files/stream sizes larger than 2gig. There is a TkpHugeFileStream and a TkpHugeMemoryStream which should handle 99% of all necessary actions. If you currently work with VCLZip 2.X with TBlobStreams or some other type of streams, you can either define your own TkpBlobStream for instance which inherits from TkpHugeStream, or use the TkpHugeStream.CopyFrom(TStream, Count) and the TkpHugeStream.GetStream: TStream methods to give VCLZip your stream and get it back. Ofcourse when using regular TStream decendants in D4,4,BCB4,and 5, you cannot create Zip64 archives. If you use Delphi 6, 7, or BCB 6, you don't have to worry about any of this as the normal TSTream is us
ed
by VCLZip and handles large file/stream sizes. ============ Version 2.23 (VCLZip Lite) Add
ed
the OEMConvert property. Filenames stor
ed
in a PKZip compatible archive normally go through an OEM conversion to make them ascii compatible. When
open
ing the zip file the conversion is undone. If you do not plan on having other zip utilities
open
ing up your archives this conversion process is not really necessary. Setting this property to False will eliminate this process. The default value for this property is True for normal PKZip compatability. Add
ed
OnEncrypt and OnDecrypt events. These allow you to replace the standard pkzip encryption with your own. Data is pass
ed
to these events a buffer at a time. Use this with care as this is still somewhat experimental and I'm not sure how useful it is yet. You must make all changes within the buffer sent in to you. Treat the entire file as a stream. Byte for byte replacement only. No additional keys can be sav
ed
. Add
ed
OnRecursingFile event. Sometimes when using wildcards and recursing directories, there was no reporting of progress. This will be fir
ed
each time a file matches as the file list is being built while recursing directories. Add
ed
the EncryptBeforeCompress boolean property. The default for this property is False and if left like this VCLZip will behave like normal. If set to True, VCLZip will encrypt each buffer prior to compressing it instead of afterwards. This will cause files to not be decryptable by normal zip utilities thereby adding a bit of extra security. Bugs Fix
ed
: IMPORTANT!!! Behavior of freeing the ArchiveStream (compress
ed
stream) has been modifi
ed
. VCLZip will now no longer try to free ArchiveStream, you must free it yourself. This was due to a problem where it would be fre
ed
automatically if there was a problem with the ArchiveStream when trying to
open
it as a zip file (possibly corrupt). Best practice is that ArchiveStream should always point toward a TMemoryStream that you create anyway. Modifi
ed
the SFX code (the code us
ed
to create the SFX stub distribut
ed
with VCLZip) so that it handles filenames that have been run through an OEM Conversion. The SFX was losing accent
ed
characters. This modification means that if you are creating zip files to be us
ed
as SFX's you will want to leave the OEMConvert property mention
ed
above, set to it's default value of True. Modifi
ed
so that when cursor is chang
ed
to hourglass by VCLZip, previous cursor is sav
ed
correctly instead of just changing it back to default cursor. Now saves Central Directory Extra Fields correctly. Fix
ed
the SFX code so that it works properly if you use Copy /B to concatenate a zip file to the stub. Due to a Delphi strange behavior sometimes path names for directory only entries would become corrupt
ed
. Remov
ed
reference to QConsts, replac
ed
with RTLConsts. Sometimes a GPF would result if a corrupt zip file was
open
ed
. Using a wildcard in pathname add
ed
to FilesList did not work. Using '*.*' as a wildcard in files add
ed
to FilesList now is the same as using '*'. VCLZip will now check for CancelTheOperation during initial building of the fileslist instead of just during compression processing. Add
ed
a final call to OnTotalPercentDone with 100% because this didn't always happen. Attributes were not getting set correctly for directory-only entries. Fix
ed
a problem that was not allowing ZipComment's to be add
ed
correctly to spann
ed
or block
ed
zip files. Not the same fix as in 2.22. Directories (directory-only entries) were not being restor
ed
properly unless DoAll was True. You were unable to delete a directory from which files were recursively zipp
ed
until exiting your application. ============ Version 2.22 Now Delphi 6 compatible. New event call
ed
{link=93,OnRecursingFile} which gets call
ed
as VCLZip recurses directories searching for files that match a wildcard that is enter
ed
in the FilesList. This gets call
ed
each time a file matches the wildcard. Fix
ed
a bug which kept diskettes from being label
ed
when creating spann
ed
zip files on WIN31. Fix
ed
a bug which sometimes did not allow zip comments to be add
ed
to block
ed
zip sets. Fix
ed
a bug which caus
ed
VCLZip to not properly handle the IncompleteZip exception on spann
ed
zip sets unless you call
ed
ReadZip prior to calling UnZip. Version 2.21 (Changes are shown in the build stages as they were implement
ed
) Pre-Release Build 5: When working with temporary files, VCLZip will now rename, instead of copy, the temp file if the destination is on the same drive. This will spe
ed
up the adding of files to an existing zip file when the resulting zip file is very large. Pre-Release Build 4: New event call
ed
OnPrepareNextDisk which is an event that will allow you, when creating spann
ed
zip files across diskettes, to do things like format a diskette that has just been insert
ed
, or to add or delete files from the diskette before continuing with the zipping process. Fix
ed
a problem that was causing the CancelTheOperation Method to not work properly. Pre-Release Build 3: Fix
ed
bug which caus
ed
VCLZip to miscalculate space ne
ed
ed
for zfc file if wildcards are put into the FilesList. Fix
ed
bug so you could have FilePercentDone without ne
ed
ing TotalPercentDone when creating spann
ed
zip files Fix
ed
so relative_offset set correctly for spann
ed
zips. Side effect of removing ne
ed
less write of header. Add
ed
code to read local fileheaders if exception thrown when reading a central fileheader. Fix
ed
problem where directories couldn't be creat
ed
from directory entries because the fullpath wasn't known yet. Result of having mov
ed
this code to earlier. Fix
ed
typo in creation of LOC header values which could cause error if reading local headers. Chang
ed
so Zip Comment starting position is calculat
ed
bas
ed
on end of central record instead of end of file. Pre-Release Build 2: IMPORTANT: Chang
ed
default for File
Open
Mode back to fmShar
eD
enyNone as it had been for all but version 2.20. Fix
ed
a problem where drivepart (i.e. C:\) was not being stripp
ed
when saving relative paths. Add
ed
a Buffer
ed
StreamSize property which can increase the spe
ed
of creating zips to floppy (and other slow m
ed
ia) dramatically. The new default for this should increase the spe
ed
by as much as 3 times, but you can now tweak this especially for your application! Add
ed
an ImproperZip property which gets set when VCLZip detects an inconsistency with the zip. This can be useful for detecting when VCLZip was able to
open
the zip in spite of an inconsistency found. There was no way to know this in the past. Fix
ed
a problem where zip comments in zfc files were not being read correctly. Add
ed
a setZipSignatures proc
ed
ure which allows you to modify the signatures of your zip file. This will cause other zip utilities to not be able to recognize or read your zip files creat
ed
with VCLZip. Useful if you want to add further security to your zip files. Pre-Release Build 1: Some zip files would not
open
correctly, throwing an incomplete zip file exception due to an erroneous "extra field length" identifier in headers of some compress
ed
files. These zip files are rare, but a very few people seem
ed
to have several of them. This problem would not affect zip files creat
ed
by VCLZip, and this problem should only occur in VCLZip 2.20, not in any previous version. If you had Range Checking turn
ed
on, VCLZip would get a range check error when using a wildcard that end
ed
with a * as in 'somefile.*'. Under certain circumstances, drive information would not be stripp
ed
from path information if zipping recursively (including subdirectories) "Retrying" to zip a file that could not be
open
ed
using the OnSkippingFile event would not always work correctly. Creating spann
ed
zip set to floppy should be faster now due to removing a ne
ed
less header write to disk for each file. VCLZip would not compile correctly with MAKESMALL defin
ed
. Add
ed
code to make VCLZip work with BCB5. Haven't test
ed
this yet though since I don't have BCB5 myself yet. Add
ed
readonly boolean ImproperZip property which will be set to True when some sort of problem is found when
open
ing the zip file, even if recoverable. This property will be enhanc
ed
and refin
ed
in the future. If KeepZip
Open
is set to True, when putting in the wrong disk in a spann
ed
zip set, VCLZip would not always properly close the file on the old diskette before trying to
open
the file on the next diskette. Add
ed
ECantWriteUCF exception which will be thrown if VCLZip runs out of room to write the uncompress
ed
file when unzipping. Timestamp was not being set properly when unzipping readonly files. Mov
ed
setting of the timestamp to before the attributes get set. ============ Version 2.20 Changes have been made in the following areas: --Performance There are a few code optimizations that should spe
ed
up the zipping process slightly. --Spann
ed
Zip Files A new feature, turn
ed
on with the SaveZipInfoOnFirstDisk allows VCLZip to create and read spann
ed
zip files starting with the first disk instead of the normally requir
ed
last disk of the spann
ed
disk set by saving a Zip Configuration File on the first disk. This feature can be us
ed
even if creating the spann
ed
zip file directly to your hard drive. A new property, SaveOnFirstDisk, allows you to save room on the first disk when creating a spann
ed
zip file, to allow room for other files, such as setup programs, data files, or a Zip Configuration File. Spann
ed
zip files can now be direct
ed
toward disks greater than 2 gig in size as long as you are using Delphi 5 or BCB 4. --UnZipping The new Select
ed
index
ed
property offers another way to flag files to be unzipp
ed
. Files that have the Select
ed
property set to True can be unzipp
ed
using the UnZipSelect
ed
method. The Select
ed
property will be clear
ed
(set to False) for each file as it is unzipp
ed
, but you can also call the ClearSelect
ed
method to clear them all. At anytime the NumSelect
ed
property can be check
ed
to see how many files have been select
ed
. Also, the UnZipToBufferByIndex and UnZipToStreamByIndex methods allow you to unzip files specifi
ed
by their index instead of by name or wildcard. The BufferLength property allows buffer
ed
output (buffer smaller than the total uncompress
ed
filesize) when unzipping directly to memory (see UnZipToBuffer and UnZipToBufferByIndex). This will cause the OnGetNextBuffer Event to be call
ed
everytime BufferLength bytes have been output by VCLZip. Modifi
ed
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 Add
ed
a property call
ed
File
Open
Mode which allows you to define the file
open
mode for files when they are
open
ed
to be zipp
ed
. Add
ed
a Retry parameter to the OnSkippingFile Event that can be us
ed
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. Add
ed
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 fir
ed
when updating or freshening an existing archive. It is trigger
ed
for each file that already exists in the archive as it is either replac
ed
or kept in the updat
ed
archive. The AddDirEntriesOnRecurse will cause separate directory entries to be includ
ed
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 improv
ed
checking for corrupt
ed
zip files when
open
ing zip files. --Encryption The following new properties and methods allow lower level work with password encrypt
ed
archives: DecryptHeader Gets the decryption header for a particular compress
ed
file in an archive GetDecryptHeaderPtr Same as DecryptHeader but easier to use in BCB. DecryptHeaderByte Method Tests a password against the decryption header found in the DecryptHeader property. GetDecryptHeaderByteByPtr Same as DecryptHeaderByte but easier to use in BCB. --Self Extracting Executables Changes were made to the ZIPSFX32.BIN stub itself: - Modifi
ed
to work with zip files containing "extra fields" in their headers. - Modifi
ed
to change mouse cursor to an hour glass during processing. - Check for correct file size is now done automatically - Now uses the end of central and central headers to find the first local header. - Add
ed
a progress meter - Better checking for corrupt
ed
zip files. - Add
ed
an information window that can optionally be shown when the sfx is initially start
ed
up. - Add
ed
an AutoRun option to make the sfx stub run automatially when double click
ed
with no other interaction from the user. For the new modifi
ed
sfx stub, ZIPSFX32.BIN, instead of using kpSFXOpt, you should now use the TSfxConfig component to set the options for the sfx stub. The new sfx can be found in the sfx\ subdirectory as usual and is call
ed
ZIPSFX32.BIN and the original sfx can be found in the same subdirectory except it is now call
ed
ORGSFX32.bin. Just rename it if you prefer that one (use KPSFXOPT instead of TSfxConfig with the old stub). --Miscellaneous The installation is now easier, atleast for first time installers of the source code. The .DPK files for Delphi and .CPP files for BCB are now includ
ed
. Now these files simply have to be compil
ed
and that's it. There is a separate option in the installation for installing to the different versions of Delphi and BCB. Add
ed
a property call
ed
FlushFilesOnClose which will cause all files
open
ed
for write by VCLZip to have their disk buffers flush
ed
to disk when clos
ed
. Add
ed
the capability to delete Select
ed
files from an archive using the DeleteEntries Method. The behavior of the OnInCompleteZip Event has been greatly improv
ed
. You can now use this event to ask the user to insert the last disk of a spann
ed
disk set rather than having to handle this situation from outside VCLZip. The register proc
ed
ures were chang
ed
so that the components now get install
ed
to the "VCLZip" tab on the palette. I found that for all but Delphi 1 I had to actually manually move the components to the "VCLZip" tab. You may find that you have to do this too if you have already install
ed
VCLZip before. The components now use new bitmaps in place of the old ones on the component palette. Separat
ed
many compiler defines into a new file call
ed
KPDEFS.INC. ==================================== Version 2.18: 1) Thanks to the hard work of a fellow register
ed
user, add
ed
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) Add
ed
some exception handling to KPUNZIPP and KPINFLT, mainly to handle unexpect
ed
situations when wrong passwords are enter
ed
. This fixes the problem with PRP, the password recovery program. 4) For Borland C++ Builder, chang
ed
any COMP types to double, getting rid of the compiler warnings for unsupport
ed
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) Modifi
ed
OnStartUnZip event so that FName (the filename of the file that is about to be unzipp
ed
along with complete path) is now a VAR parameter and can be modifi
ed
. This allows you to change the path and name of a file that is about to be unzipp
ed
. This is especially helpfull in applications like Install Programs. NOTE: You will ne
ed
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) Mov
ed
many type definitions to VCLUNZIP.PAS so that kpZipObj won't have to be includ
ed
in your USES list. 7) Fix
ed
bug that caus
ed
GPF when setting Zip Comment to '' (empty string). 8) Mov
ed
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) Remov
ed
the ne
ed
for several files. No longer includ
ed
are kpstrm.res, kpstrm.rc, kpsconst.res, kpsconst.rc, kpstres.pas, and for Delphi 1, kpdrvs.pas. In some cases the ne
ed
for these files was eliminat
ed
and in other cases just roll
ed
into the newly includ
ed
kpzcnst.rc, kpzcnst.pas, and kpzcnst.res. Definining NO_RES in your project options will elimiate the ne
ed
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) Modifi
ed
the OnFilePercentDone and OnTotalPercentDone progress events to work better when creating spann
ed
disk sets and block
ed
zip sets. They no longer report 100% when the compress
ed
file still has to be copi
ed
to disk. 11) Add
ed
the ReplaceReadOnly property. Setting this to true will allow files with the ReadOnly attribute to be replac
ed
during the unzip process. 12) Add
ed
the ifNewer and ifOlder options to the OverwriteMode property. (This had somehow made it into the help file but not into VCLUnZip) 13) Add
ed
the SFXToZip method which will convert an SFX file to a regular zip file. The header pointers will be properly adjust
ed
during the conversion. 14) Fix
ed
a problem where the OnGetNextDisk event would always revert to the DefaultGetNextDisk method instead of what you enter
ed
into the Object Inspector each time your project was re-
open
ed
. 15) Fix
ed
a bug that caus
ed
CRC errors when unzipping files from spann
ed
disk sets if they were STOR
ED
(no compression) and spann
ed
across disks. 16) Add
ed
the OnZipComplete and OnUnZipComplete events. If defin
ed
, these will fire at the very end of a zip or unzip operation (after all files have been process
ed
, not after each file). These events will rarely be us
ed
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 ne
ed
to create a zip file first. The files that you specify in the FilesList property will be zipp
ed
, using all the normal VCLZip property settings, and the SFX will be creat
ed
, 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 distribut
ed
with VCLZip. This allows you to easily set things like SFX Dialog caption, default target extraction directory, file to launch after extraction, etc. 18) Fix
ed
a memory leak that only affects applications using VCLZip that are compil
ed
with Delphi 2, and that use wildcard specifications in the FilesList property. Version 2.17a: 1) Fix
ed
a bug that was keeping VCLZip from reading truncat
ed
zip files or sfx files that did not have their headers adjust
ed
. 2) Fix
ed
a bug that was causing a directory to be creat
ed
on the C drive when doing integrity checking with the FileIsOK property. 3) Add
ed
{$V-} to kpZipObj.PAS 4) Mov
ed
two AssignTo methods to public instead of private in kpZipObj.PAS Version 2.17: 1) Add
ed
Memory zipping and unzipping capabilities through the UnZipToBuffer and ZipFromBuffer methods. See the documentation for these methods in the Help File for more information. 2) New FileIsOK Property allows you to check for the integrity of individual files within an archive without actually unzipping the file. 3) Fix
ed
a bug that kept checking of volume labels from working on WIN31 when working with spann
ed
disk sets. 4) Remov
ed
all references to ChDirectory so that VCLZip will be more thread safe allowing separate instances of VCLZip in separate threads to be performing zip/unzip operations at the same time. 5) A new public property PreserveStubs allows you to make modifications to sfx archives and have the archive remain an SFX rather than revert back to a normal zip file. 6) Add
ed
a default OnGetNextDisk event. If one is not defin
ed
, then the default event will be call
ed
when the situation arises that a new disk is ne
ed
ed
when zipping or unzipping a spann
ed
or block
ed
zip archive. 7) Add
ed
more power to the wildcard capabilities. Now you can qualify the * wildcard character, for instance: * would satisfy any number of contiguous characters as long as they are all a thru e. * would satisfy any number of contiguous characters as long as none of them were a thru e. This allows you to do things like include files in specific direcories into your ExcludeList. For instance: VCLZip1.ExcludeList.Add('c:\test\*.txt') would exclude the zipping of all .txt files in the test directory but not in any subdirectories. 8) Fix
ed
other minor bugs and made other code enhancements. Version 2.16: ***Please be aware that if you currently use the OnSkippingFile event in any of your applications, version 2.16 will require a small modification as this event has an add
ed
parameter and one of the current parameters is us
ed
a little differently when being call
ed
by the zip operation. Please see the help file for more information. 1) The OnSkippingFile Event has been chang
ed
slightly, adding a parameter for the filename. 2) OnSkippingFile is now call
ed
when a file to be zipp
ed
is skipp
ed
because it is lock
ed
by another application. See the Help File for more information. 3) Fix
ed
a bug with the Exclude and NoCompressList where they were ignoring entries with anything before the extention (i.e. 'somefile.*' as oppos
ed
to '*.zip') if you were saving directory information. 4) Fix
ed
a bug that caus
ed
an error if you add
ed
a wildcard with a non-existent directory to the FilesList. 5) A few other minor bug fixes. Modifications for 2.15 include: 1) PackLevel can now be set to 0 (zero) which means no compression at all (STOR
ED
only). 2) New property ExcludeList is a new stringlist that you can add filenames and wildcards to in order to specify files that you do not wish to be includ
ed
in an archive. 3) New property NoCompressList is a new stringlist that you can add filenames and wildcards to in order to specify files that you wish to be STOR
ED
with a PackLevel of 0 (zero), no compression. 4) All compiler warnings and hints were remov
ed
. Modifications for 2.14 include: 1) Delphi 4 compatability. 2) Add
ed
ability to use complex wildcards when specifying which files are to be zipp
ed
. This includes wildcard characters not only in the filename but also in the pathname. This allows you to specify directories using wildcards, for instance: 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. 3) Add
ed
the ability to override the RECURSE property setting when specifying files to be zipp
ed
. By adding the following characters to the beginning of the filenames being add
ed
, you can override whatever the current setting is for the RECURSE property: '>' will force recursion into subdirectories '|' will force NO-recursion For instance: VCLZip1.FilesList.add('>c:\windows\*.ini'); will get all .ini files in and below the windows directory reguardless 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. 4) The [ and ] characters previously us
ed
as special wildcard characters have been chang
ed
to since [ and ] are valid filename characters. If you still ne
ed
to use the previous characters for backward compatability, I can show register
ed
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. 5) A few bug fixes. Modifications for 2.13 include: 1) New property ResetArchiveBitOnZip causes each file's archive bit to be turn
ed
off after being zipp
ed
. 2) New Property SkipIfArchiveBitNotSet causes files who's archive bit is not set to be skipp
ed
during zipping operations. 3) A few modifications were made to allow more compatibility with BCB 1. 4) Clean
ed
up the Help File some. 5) KWF file now works for Delphi 1 and Delphi 2 again. Still can't get context sensitive help in Delphi 3. 6) Clean
ed
up some of the code that was causing compiler warnings and hints. Modifications for 2.12 include: 1) Add
ed
a TempPath property to allow the temporary files path to be different from the Windows default. 2) Modifi
ed
VCLZip so that any temporary files that are creat
ed
receive a unique temporary filename so as not to clash with any other files in the temporary directory. This also allows working with zip files residing in the temporary directory. 3) Fix
ed
a bug in the relative path feature. 4) Fix
ed
a bug that caus
ed
a "list out of bounds" error if a file in the FilesList did not actually exist. Modifications for 2.11 include: 1) Fix
ed
password encryption bug for 16 bit. 2) Fix
ed
"invalid pointer operation" when closing application bug. 3) Fix
ed
path device truncation bug which caus
ed
inability to modify existing archives in 16 bit. 4) Fix
ed
inability to cancel during wilcard expansion bug. 5) Add
ed
capability to better handle corrupt
ed
timestamps. 6) Add
ed
capability to
open
and work with SFX files that were creat
ed
with the COPY/B method (header files not adjust
ed
). 7) Other small bug fixes. I'm still working on a bug which causes a GPF when continually unzipping the same file thousands to millions of times. This mainly affects programs like the Password Recovery Program (PRP) which uses the brute force method of searching for an archive's password. Modifications for 2.10 include: 1) Capability for 16bit VCLZip to store long file/path names when running on a 32bit OS. 2) New property (Store83Names) which allows you to force DOS 8.3 file and path names to be stor
ed
. 3) Better UNC path support. 4) Fix
ed
a bug to allow files to be add
ed
to an empty archive. Modifications for 2.03 include: 1) Volume labels now get written correctly to spann
ed
disk sets in Delphi 1 for all versions of Windows. 2) Delphi 1 VCLZip now correctly recognizes when it is running on Windows NT. 3) Fix
ed
a problem with zipping files in the root directory when StorePaths = True. 4) File and Zip Comments are now read correctly from spann
ed
/block
ed
zip archives. 5) Fix
ed
a buf that was causing "Duplicate Object" errors. Modifications for 2.02 include: 1) Fix for file comments which were suppos
ed
to be fix
ed
in version 2.01 but weren't. 2) 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) 3) A few other minor modifications to further solidify the code. 4) A modification to the Zip Utility Demo which allows unzipping from Block
ed
zip files as if they were single zip files. 5) Add
ed
a read-only, publish
ed
ThisVersion property which reflects the version of the VCLZip/VCLUnZip that you are currently working with. Modifications for 2.01 include: 1) Fixes for exceptions that were caus
ed
when CANCELING a zip or unzip of a spann
ed
zip file. 2) Fix for a possible problem when zipping or unzipping a spann
ed
zip file when one or more of the compress
ed
files resid
ed
on more than 2 of the spann
ed
parts. 3) Fix for file comments which were broken in version 2.00. Additional features for version 2.00 include: 1) Modify/Add internal file details (filename, pathname, timestamp, comment) for any file while zipping, in the OnStartZip event. 2) Add an Archive Comment while zipping in the OnStartZipInfo event. 3) Delphi 1 compatiblity for VCLZip. 4) Stream to Stream Zipping - Archives themselves can now be TStreams! 5) New Relative Path Information option. 6) Unzip archives that weren't zipp
ed
with the Relative Path option turn
ed
on as if they had been by determining how much path information to use with the Rootpath property. 7) Modify timestamps for files in existing archives (you could already modify filenames and pathnames for files in existing archives) 8) The OnBadPassword event now allows you to supply a new password and try the same file again when unzipping. 9) Source code has been clean
ed
up so that it will compile under Borland C++ Builder with no modifications. Also some bugs were fix
ed
, most importantly: 1) An empty file, that had been compress
ed
into an archive would cause any file add
ed
to the archive to cause the archive to approximately double in size. Any archives containing empty files are not corrupt
ed
, they are OK. This was simply a fix to the way the archive was process
ed
. 2) After creating an SFX file, you had to close the zip file before you could modify it in any way, otherwise a stream read error was encounter
ed
. See the Help file for more information on new features. This zip file is part of a self contain
ed
installation program. Just run it and the installation program will begin. Contact vclzip@bigfoot.com for further information Thanks! Kevin Boylan
C++系列第2:C++2.0(11+14+17+20)详解及多线程实战
47 结构化绑定 48 条件分支语句初始化 49 聚合初始化 50 嵌套命名空间 52 lambda表达式捕获*this的值 53 改写/继承构造函数 54 用auto作为非类型模板参数 55 __has_include 56 fallthrough 57 nodiscard 57 maybe_...
xxx.nsf has not been
open
ed
yet解决方法
在创建session
时
需要写入registration 方法,这样就可以解决这个问题了。....Session s = NotesFactory.createSessionWithFullAccess();Registration r= s.createRegistration();r.switchToID(“c:\\notesIDFile.id”,“notespasswor...
基于spring websocket+sockjs实现的长连接请求
1、前言页面端通常有需求想要准实
时
知道后台数据的一个变化情况,比如扫码登录场景,或者跳转到网银支付场景,在旧有的短轮训实现下,通常造成大量的不必要请求和查询,这里基于spring websocket+sockjs来解决该问题。2、websocketwebsocket是html5的一个新特性,目前oracle已经统一java websocket api,只要容器支持JSR356(tomcat7以上支持
数据库报表
6,108
社区成员
4,750
社区内容
发帖
与我相关
我的任务
数据库报表
其他数据库开发 数据库报表
复制链接
扫一扫
分享
社区描述
其他数据库开发 数据库报表
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章