XFRX#ZIP Class

XFRX use this class for creating output for Libre Office, Microsoft Office 2007 and XML Paper Specifications.

Internal name is eqzip. The synonymum XFRX#ZIP is introduced in XFRX 22.0


Remarks

To version XFRX 22.x

XFRX use zlib.dll version 1.2.1 for VFP 5-9 and VFPA 32 bit. This version is old, but need MS VC ++ Runtime 4.0 only.

XFRX use zlib64.dll version 1.2.11 for VFPA 64 bit. This version is compiled  from source code  and need MS VC ++ Runtime 14.0.

Since version XFRX 23.0

zlib.dll and zlib64.dll are compiled from source code  and need MS VC ++ Runtime 10.0.



UTF-8

ZIP max size 

File max size

UTF-8

ZIP max size

File max size

Zlib version <1.2.5Zlib version >=1.2.5

< XFRX 22.0XFRX 22.0
VFP 5-9
VFP A 10.0 32 bit
No2GiB2GiBYes>4GiB2GiB>4GiB
VFP A 10.0 64 bit-Yes>4GiB2GiB>4GiB
VFP A 10.1 32 bitNo2GiB4GiBYes>4GiB>4GiB>4GiB
VFP A 10.1 64 bit-Yes>4GiB>4GiB>4GiB

Examples

Use XFRX#ZIP before XFRX 22.0

LOCAL m.loZIP, m.lcZIPFile, m.lcFile
m.lcZIPFile=SYS(2023)+"\test.zip"
m.lcFile="xfrx.h"
SET PROCEDURE TO xfrx.prg
m.loZIP = CREATEOBJECT("eqzip")
?"ZLIB version", m.loZIP.nzipVersion
IF m.loZip.openArchive(m.lcZIPFile)
   m.loZip.appendFile(m.lcFile, JUSTFNAME(m.lcFile), .T.) 
   m.loZip.closearchive()
ENDIF
RELE m.loZIP 

Use XFRX#ZIP from XFRX 22.0

LOCAL m.loZIP, m.lcZIPFile, m.lcFile
m.lcZIPFile=SYS(2023)+"\test.zip"
m.lcFile="xfrx.h"
m.loZIP =  EVALUATE([xfrx("XFRX#ZIP")])  
?"ZLIB version", m.loZIP.nzipVersion
IF m.loZip.openArchive(m.lcZIPFile)
   m.loZip.appendFile(m.lcFile, JUSTFNAME(m.lcFile), .T.) 
   m.loZip.closearchive()
ENDIF
RELE m.loZIP 
LOCAL m.loZIP, m.lcZIPFile, m.lcFile
m.lcZIPFile="c:\temp\_big.zip"
m.loZIP =  EVALUATE([xfrx("XFRX#ZIP")])  
IF m.loZip.openArchive(m.lcZIPFile)

   m.lcData=SYS(0)+" "+TTOC(DATETIME())
   m.loZip.OpenNewFile("myFile") 
   m.loZip.WriteData(m.lcData) 
   m.loZip.CloseFile() 

   m.lcData=SYS(0)+" "+TTOC(DATETIME())
   m.loZip.OpenNewFile("myFile+Datetime", {^2022-01-01}) 
   m.loZip.WriteData(m.lcData) 
   m.loZip.CloseFile() 

   m.lcData=SYS(0)+" "+TTOC(DATETIME())
   m.loZip.OpenNewFile("myFile+Datetime+National+Characters - "+"bílý žluťoučký kůň", {^2022-01-01}, .T.) 
   m.loZip.WriteData(m.lcData) 
   m.loZip.CloseFile() 

   m.lcData=SYS(0)+" "+TTOC(DATETIME())
   m.loZip.OpenNewFile("myFile+Datetime+ěščřž+password", {^2022-01-01}, .T., "mypwd", loZIP.SYS2007(m.lcData)) 
   m.loZip.WriteData(m.lcData) 
   m.loZip.CloseFile() 

   m.lcData=SYS(0)+" "+TTOC(DATETIME())
   m.loZip.OpenNewFile("myFile+Datetime+ěščřž+password+file comment", {^2022-01-01}, .T., "mypwd", loZIP.SYS2007(m.lcData), .F., "my file comment") 
   m.loZip.WriteData(m.lcData) 
   m.loZip.CloseFile() 
   
   m.loZip.closearchive("ěščřžýáíé")
ENDIF
RELE m.loZIP