PROCEDURE zLib PARAMETER cFunc, cStr DO CASE CASE upper(cFunc)='COMPRESS' RETURN CompressIt(cStr) CASE upper(cFunc)='UNCOMPRESS' RETURN UnCompressIt(cStr) ENDCASE RETURN '' Function CompressIt( InFile ) DECLARE INTEGER compress IN zlib.dll AS zlibCompress ; STRING @ dest, INTEGER @ destLen, ; STRING src, INTEGER srcLen LOCAL lnSize, lcBuff, lnFinalSize lnSize = len(InFile) lcBuff = space( len(InFile)*1.2 ) lnFinalSize = len(lcBuff) Res = zlibCompress( @lcBuff, @lnFinalSize, InFile, lnSize ) If Res=0 && Success RETURN PadL( alltrim(str(lnSize)), 15, '0' ) + Left( lcBuff, lnFinalSize ) endif RETURN '' FUNCTION UnCompressIt( zLibFile ) DECLARE INTEGER uncompress IN zlib.dll AS zlibUnCompress ; STRING @ dest, INTEGER @ destLen, ; STRING src, INTEGER srcLen LOCAL lnSize, lcBuff, lnFinalSize lnSize = len(zLibFile) lnFinalSize = Val( Left( zLibFile, 15 ) ) lcBuff = space( lnFinalSize ) zLibFile = SubStr( zLibFile, 16 ) Res = zlibUnCompress( @lcBuff, @lnFinalSize, zLibFile, lnSize ) If Res=0 && Success RETURN lcBuff endif RETURN ''>I save word documents in a database in Memo (binary) field by filetostr() and strtofile() to retrive it.