Пробую скормить эти данные Zlib... Но для этого требуется разобраться со структурой блока. Если я правильно понял, то: 78 DA -- сигнатура, указывающая способ компрессии; 33 34 32 36 31 35 33 B7 00 00 -- собственно сжатые данные; 07 40 01 A5 -- CRC32 (правда, не пойму от чего?)
Код (Text): Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> a = "78 DA 33 34 32 36 31 35 33 B7 00 00 07 40 01 A5" >>> a = a.replace(" ","") >>> a '78DA33343236313533B70000074001A5' >>> b = a.decode('hex') >>> b 'x\xda3426153\xb7\x00\x00\x07@\x01\xa5' >>> import zlib >>> c = zlib.decompress(b) >>> c '12345678' >>>
reverser Ой! Я даже не понял, по-какому ж енто написано Ну и ладно: зато Zlib.uncompress скушал мой пример на ура Но теперь вопрос: как организовать БЛОЧНУЮ распаковку? Ибо реальный материал за один присест не взять--уж больно он увесистый...
Ск0чай полную версию zlib с офицального сайта, прочитай документацию. Там есть итерационный поточный алгоритм (собственно говоря он есть основной =) Код (Text): ;; для трудных блоксхема if ( InflateInit(трололо) ) { do { int result = InflateData(трололо); } while (result == Z_OK); } InflateEnd(трололо); if ( result == Z_STREAM_END ) return(заебца!); else return(факап-однако);