XFRX#ZIP Class

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 24.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.5

Zlib version >=1.2.5

 

< XFRX 22.0

XFRX 22.0

VFP 5-9
VFP A 10.0 32 bit

No

2GiB

2GiB

Yes

>4GiB

2GiB

>4GiB

VFP A 10.0 64 bit

-

Yes

>4GiB

2GiB

>4GiB

VFP A 10.1 32 bit

No

2GiB

4GiB

Yes

>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