in reply to How to "zip" a big string to small ?

First of all, how big is a "huge big string"?

Secondly, what DB do you use; sometimes the DB can do the compression for you.

Third as suggested Compress::Zlib could be an option (in general fast and good compression). But there are many others on CPAN. In general it depends on what you try to compress (structure of the string), and the size of it. You don't give info on those.

I don’t think Archive::Zip is of any use to you, unless you want to store zip-files in your DB.

  • Comment on Re: How to "zip" a big string to small ?

Replies are listed 'Best First'.
Re^2: How to "zip" a big string to small ?
by pysome (Scribe) on Oct 29, 2008 at 03:29 UTC
    Thanks your reply.
    1)The big string ,i mean the string is large enough,about 8-10k
    2)I use the SqlServer ( varchar(max) ) to store the string.
    3)I just compress common string ,eg.:
    my $string = " aaaaaaaaaaaaaaaaaaaaaaaa sdfsdf bbbbbbbbbbb sdfsdfsdf sdfffffffff sdfsdf < tabl> sfsdfffffffffffffffffffffffffffffffffffffffffff ... much and more .... "
      1)The big string ,i mean the string is large enough,about 8-10k

      This doesn’t strike me as "big".

      2)I use the SqlServer ( varchar(max) ) to store the string.

      SQLServer should have not trouble handling those strings.

      3)I just compress common string ,eg.:...

      Any of the suggested compression alternatives should work for you. Based on the example you provide I assume that you will obtain excellent compression ratios.

      I would like to draw your attention to one more alternative: RLE which stands for Run Length Encoding. It doesn’t give you a great compression ration but it’s very simple and therefore fast. I have found a Perl implementation for it which can be found here (I did not tested it though)

        Thanks again.
        Now, I can compress the big string by "Compress::Zlib::compress" just like this:
        my $f = <DATA>; my $dest = compress($f); #print $dest; __DATA__ big big string ssssssssssssssssssssssss mmmmmmmmmmmmmmmmmmmmmmmmm as long as possible...
        Now i wanna know whether or not the "$dest" can be stored into DB( column type varchar)
        And how to recover the original string($f) later.