IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Архивирование и C++ - есть вопрос! (http://www.imho.ws/showthread.php?t=65312)

Ante02 30.07.2004 13:59

Архивирование и C++ - есть вопрос!
 
Подскажите пожайлуста, как решить такую проблему:
Программа, написанная на Visual C++ 6.0 или на C.Net
Должна заархивировать/разархивировать несколько файлов в определённой директории?
Заранее спасибо!

Dimm 31.07.2004 00:04

Ante02

Не понял, ты просишь написать тебе программу или у тебя есть конкретные вопросы по теме ?

Mr.Vector! 31.07.2004 00:42

Странный ты человек... и просьба у тя странная... :confused:
В общем не знаю как там на Visual C++ но на борланде компонент был... называлси как-то прикольно... не то ZipVCL не то RARVCL :biggrin: Но смысл такой... ищи компонент - все будет проще... чем самому заново колесо создавать! :cool:
Кому-то абсолютно все... кому-то ничего! :beer:

Argvlan 31.07.2004 10:08

Цитата:

Mr.Vector!:
В общем не знаю как там на Visual C++ но на борланде компонент был... называлси как-то прикольно... не то ZipVCL не то RARVCL Но смысл такой... ищи компонент - все будет проще... чем самому заново колесо создавать!
Эти компоненты можно поискать здесь:
Delphi Super Page

Drakosha 31.07.2004 10:46

народ, есть библиотекa:

http://www.gzip.org/zlib/

Scary Zet 28.08.2004 20:30

А ещё над zlib есть надстройка, которая позволяет с zip'ами работать. Не помню, как называется :( Если кто знает, подскажите, плз.

Crazy_kettle 29.08.2004 05:31

А почему нельзя воспользоваться внешней програмой архиватором (типа rar.exe, pkzip.exe, pkunzip.exe)? Создаёшь новый процес для архивирования и разорхивирования.
Ну если хочется ручками поработать ищи описание алгоритма Хафмана.

dumbledor 29.08.2004 17:59

Одного Хаффмана мало.
Все архиваторы используют LZW77/78 модификации совместно с Хаффманом и арифметическим сжатием.
Если интересно я могу полную подборку статей прислать.

tonynays 30.08.2004 23:42

А у Микрософта есть готовые библиотеки и хедеры для работы с CAB'ами. Не самый удобный интерфейс - но работает. Поищи на их сайте - я когда-то находил.

Вовочка 22.09.2004 16:48

Вопрос по теме:

Как можно организовать побитную запись/чтение файла?

V@nya 22.09.2004 17:05

Вовочка, наверное никак (я про С++, на асме может и можно)

Drakosha 22.09.2004 17:42

Вовочка,
сделать буффер, и реализовать побитный interface

VeryLucky 24.09.2004 15:09

sharplib

Crazy_kettle 24.09.2004 21:47

Цитата:

Как можно организовать побитную запись/чтение файла?
Никак. Помойму считать с диска меньше, чем размер кластера (не менее 512Кб) нельзя.
Правда, зачем это тебе? Читай в массив, а его потом обрабатывай побитово.

Вовочка 15.10.2004 18:43

Всем спасибо за советы.

Меня интересовало нечто типа

b+=a<<i;

a откуда копируем i бит, b - куда.

Ghola 15.10.2004 19:44

Опиши свой класс и переопредели для него операторы. А класс этот может быть, например, отображённым на память файлом. См. CreateFileMapping и т.п. Кстати, напоминаю, что есть ещё битовые поля (bit fields) в структурах С, а в С++ также и в классах и объединениях/унионах.

Crazy_kettle 23.10.2004 23:39

Цитата:

Сообщение от Вовочка
Меня интересовало нечто типа

b+=a<<i;

a откуда копируем i бит, b - куда.

Чтобы установить i-ый (0<=i<=31) бит:
b|=1<<i;
Чтобы снять i-ый бит:
b&=~(1<<i);

Чтобы проверить i-ый бит:
temp=b&(1<<i);
Если temp==0 тогда I-ый бит 0, в противном случае 1.

P.S. Чтобы поднять производительность программы, думаю, будет не лишним хранить массив чисел (1<<i, 0<=i<=31).

/7y3uK 24.10.2004 01:36

А что нету в вижле такой феньки как у борланда (Delphi, Builder) BLOBStream?


Часовой пояс GMT +4, время: 11:45.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.