т.е. я считал зачем-то crc32 и писал веcь файл одним вызовом zipWriteInFileInZip
а теперь переделал этот класс, чтобы можно было писать блоками
соотв. я считалку црц убрал — ибо откуда я знаю crc если запись будет идти неизвестными блоками
но появилась такая фигня, вроде как арзив правильный, но проги-архиваторы ругаются на некоторые файлы, говоря что у них этот самый црц не правильый.
хотя если самому загрузить этот архив, то там все файлы читаются без проблем.
по идее нада вернуться к первому варианту, но это такой бред, ибо
1. мне нада знать весь блок данных для записи до его добаления в архив, чтобы crc посчитать..
2. и вообще там написано что crc нужен тока для шифрования
как разрулить?
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, Kingofastellarwar, Вы писали:
K>а теперь переделал этот класс, чтобы можно было писать блоками K>соотв. я считалку црц убрал — ибо откуда я знаю crc если запись будет идти неизвестными блоками
K>как разрулить?
в boost-е есть считалка crc32 для последовательности блоков данных
Здравствуйте, kpcb, Вы писали:
K>в boost-е есть считалка crc32 для последовательности блоков данных
так это тоже не подходит, потому что нет способа менять црц по ходу записи или после неё. ну по крайней мере я не знаю такого способа.
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
а блин я понял , там при записи нельзя NULL передавть
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, Kingofastellarwar, Вы писали:
K>был у меня класс зипер, который добвлял в архив файл одним вызовом
K>int crc = crc32(0, (const Bytef *)data, size); K>zipOpenNewFileInZip3(Zip, path, &zipfi, null, 0, null, 0, null, Z_DEFLATED, Z_DEFAULT_COMPRESSION, 0, 15, 8, Z_DEFAULT_STRATEGY, null, crc); K>zipWriteInFileInZip(Zip, data, size)
Думаю, дело в выделенном, чтобы создать совместимый архив, надо задать -15. Или использовать zipOpenNewFileInZip, чтобы вообще не задавать этот параметр самому.
Здравствуйте, Alexander G, Вы писали:
AG>Думаю, дело в выделенном, чтобы создать совместимый архив, надо задать -15. Или использовать zipOpenNewFileInZip, чтобы вообще не задавать этот параметр самому.
не
zipWriteInFileInZip(Zip, /*сюда нельзя случайно передать нулл*/, size)
потому что функция вернет Z_OK но при этом сбросит црц
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.