##- # Author: Brian Tiffin # Dedicated to the public domain # # Date: November 2016 # Modified: 2016-11-27/01:02-0500 ##+ # # gzio.icn, Demonstrate libz compression # link printf procedure main() if not find("libz", &features) then stop("no libz compression") # compress some text, libz adds a little overhead filename := "gzio.txt.gz" f := open(filename, "wz") | stop("cannot write ", filename) writes(f, "First line\n") every 1 to 4 do writes(f, &ucase || &lcase || "\n") writes(f, "Last line\n") close(f) # image of compressed file f := open(filename, "r") data := reads(f, -1) close(f) write("Compressed data, size=", *data) hexdump(data) # read and uncompress the data write("\nUncompressed data") f := open(filename, "rz") while writes(reads(f)) close(f) end # # display hex codes # procedure hexdump(s) local c, perline := 0 every c := !s do { if (perline +:= 1) > 16 then write() & perline := 1 writes(map(_doprnt("%02x ", [ord(c)]), &lcase, &ucase)) } write() end