![]() |
Архивирование и C++ - есть вопрос!
Подскажите пожайлуста, как решить такую проблему:
Программа, написанная на Visual C++ 6.0 или на C.Net Должна заархивировать/разархивировать несколько файлов в определённой директории? Заранее спасибо! |
Ante02
Не понял, ты просишь написать тебе программу или у тебя есть конкретные вопросы по теме ? |
Странный ты человек... и просьба у тя странная... :confused:
В общем не знаю как там на Visual C++ но на борланде компонент был... называлси как-то прикольно... не то ZipVCL не то RARVCL :biggrin: Но смысл такой... ищи компонент - все будет проще... чем самому заново колесо создавать! :cool: Кому-то абсолютно все... кому-то ничего! :beer: |
Цитата:
Delphi Super Page |
|
А ещё над zlib есть надстройка, которая позволяет с zip'ами работать. Не помню, как называется :( Если кто знает, подскажите, плз.
|
А почему нельзя воспользоваться внешней програмой архиватором (типа rar.exe, pkzip.exe, pkunzip.exe)? Создаёшь новый процес для архивирования и разорхивирования.
Ну если хочется ручками поработать ищи описание алгоритма Хафмана. |
Одного Хаффмана мало.
Все архиваторы используют LZW77/78 модификации совместно с Хаффманом и арифметическим сжатием. Если интересно я могу полную подборку статей прислать. |
А у Микрософта есть готовые библиотеки и хедеры для работы с CAB'ами. Не самый удобный интерфейс - но работает. Поищи на их сайте - я когда-то находил.
|
Вопрос по теме:
Как можно организовать побитную запись/чтение файла? |
Вовочка, наверное никак (я про С++, на асме может и можно)
|
Вовочка,
сделать буффер, и реализовать побитный interface |
sharplib
|
Цитата:
Правда, зачем это тебе? Читай в массив, а его потом обрабатывай побитово. |
Всем спасибо за советы.
Меня интересовало нечто типа b+=a<<i; a откуда копируем i бит, b - куда. |
Опиши свой класс и переопредели для него операторы. А класс этот может быть, например, отображённым на память файлом. См. CreateFileMapping и т.п. Кстати, напоминаю, что есть ещё битовые поля (bit fields) в структурах С, а в С++ также и в классах и объединениях/унионах.
|
Цитата:
b|=1<<i; Чтобы снять i-ый бит: b&=~(1<<i); Чтобы проверить i-ый бит: temp=b&(1<<i); Если temp==0 тогда I-ый бит 0, в противном случае 1. P.S. Чтобы поднять производительность программы, думаю, будет не лишним хранить массив чисел (1<<i, 0<=i<=31). |
А что нету в вижле такой феньки как у борланда (Delphi, Builder) BLOBStream?
|
| Часовой пояс GMT +4, время: 11:45. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.