[vox-tech] reading a .gz .Z after offset

Mark K. Kim vox-tech@lists.lugod.org
Thu, 7 Mar 2002 19:37:59 -0800 (PST)


On Thu, 7 Mar 2002, Jeff Newmiller wrote:

> I don't think you can do seeks in a compressed file... you have to read it
> sequentially.
>
> If you have a plan for dividing up the uncompressed data, perhaps you
> should do that first and store the split data as separate files
> (recompressed or not) for purposes of computation.

The zlib library offers a seek function in its utility function API,
"gzseek(gzFile, z_off_t, int)".  Since the zlib compression uses the
deflation algorithm that compresses data in blocks of a known size, it can
find the block you're seeking, inflate just that block, and return the
data (I'm not sure if that's how gzseek works, but I'm just sain' it can
be done.)  I'm sure in all PERL's ingenuity, it can be done in PERL, too.

Go Eric!  Keep looking! :)

-Mark

--
Mark K. Kim
http://www.cbreak.org/
PGP key available upon request.