imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 30.07.2004, 13:59     # 1
Ante02
Guest
 
Сообщения: n/a

Архивирование и C++ - есть вопрос!

Подскажите пожайлуста, как решить такую проблему:
Программа, написанная на Visual C++ 6.0 или на C.Net
Должна заархивировать/разархивировать несколько файлов в определённой директории?
Заранее спасибо!
 
Старый 31.07.2004, 00:04     # 2
Dimm
Добрый фей-мод
 
Аватар для Dimm
 
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155

Dimm СуперБогDimm СуперБог
Dimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБог
Ante02

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

Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью.
Dimm вне форума  
Старый 31.07.2004, 00:42     # 3
Mr.Vector!
Banned
 
Аватар для Mr.Vector!
 
Регистрация: 08.05.2004
Сообщения: 31

Mr.Vector! Путь к славе только начался
Странный ты человек... и просьба у тя странная...
В общем не знаю как там на Visual C++ но на борланде компонент был... называлси как-то прикольно... не то ZipVCL не то RARVCL Но смысл такой... ищи компонент - все будет проще... чем самому заново колесо создавать!
Кому-то абсолютно все... кому-то ничего!
Mr.Vector! вне форума  
Старый 31.07.2004, 10:08     # 4
Argvlan
Advanced Member
 
Аватар для Argvlan
 
Регистрация: 06.02.2004
Сообщения: 412

Argvlan Популярный человек на этом форумеArgvlan Популярный человек на этом форумеArgvlan Популярный человек на этом форумеArgvlan Популярный человек на этом форумеArgvlan Популярный человек на этом форумеArgvlan Популярный человек на этом форумеArgvlan Популярный человек на этом форумеArgvlan Популярный человек на этом форуме
Цитата:
Mr.Vector!:
В общем не знаю как там на Visual C++ но на борланде компонент был... называлси как-то прикольно... не то ZipVCL не то RARVCL Но смысл такой... ищи компонент - все будет проще... чем самому заново колесо создавать!
Эти компоненты можно поискать здесь:
Delphi Super Page
Argvlan вне форума  
Старый 31.07.2004, 10:46     # 5
Drakosha
Full Member
 
Аватар для Drakosha
 
Регистрация: 16.10.2002
Адрес: ArchLinux, Internet
Сообщения: 557

Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)
народ, есть библиотекa:

http://www.gzip.org/zlib/
Drakosha вне форума  
Старый 28.08.2004, 20:30     # 6
Scary Zet
Junior Member
 
Аватар для Scary Zet
 
Регистрация: 08.07.2004
Адрес: Воронеж
Сообщения: 115

Scary Zet Нимб уже пробиваетсяScary Zet Нимб уже пробивается
А ещё над zlib есть надстройка, которая позволяет с zip'ами работать. Не помню, как называется Если кто знает, подскажите, плз.
Scary Zet вне форума  
Старый 29.08.2004, 05:31     # 7
Crazy_kettle
Junior Member
 
Регистрация: 13.05.2004
Сообщения: 128

Crazy_kettle Известность не заставит себя ждатьCrazy_kettle Известность не заставит себя ждать
А почему нельзя воспользоваться внешней програмой архиватором (типа rar.exe, pkzip.exe, pkunzip.exe)? Создаёшь новый процес для архивирования и разорхивирования.
Ну если хочется ручками поработать ищи описание алгоритма Хафмана.
Crazy_kettle вне форума  
Старый 29.08.2004, 17:59     # 8
dumbledor
Guest
 
Сообщения: n/a

Одного Хаффмана мало.
Все архиваторы используют LZW77/78 модификации совместно с Хаффманом и арифметическим сжатием.
Если интересно я могу полную подборку статей прислать.
 
Старый 30.08.2004, 23:42     # 9
tonynays
Guest
 
Сообщения: n/a

А у Микрософта есть готовые библиотеки и хедеры для работы с CAB'ами. Не самый удобный интерфейс - но работает. Поищи на их сайте - я когда-то находил.
 
Старый 22.09.2004, 16:48     # 10
Вовочка
Guest
 
Сообщения: n/a

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

Как можно организовать побитную запись/чтение файла?
 
Старый 22.09.2004, 17:05     # 11
V@nya
Full Member
 
Аватар для V@nya
 
Регистрация: 20.07.2002
Адрес: Находка
Сообщения: 740

V@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царстве
Вовочка, наверное никак (я про С++, на асме может и можно)
V@nya вне форума  
Старый 22.09.2004, 17:42     # 12
Drakosha
Full Member
 
Аватар для Drakosha
 
Регистрация: 16.10.2002
Адрес: ArchLinux, Internet
Сообщения: 557

Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)
Вовочка,
сделать буффер, и реализовать побитный interface
Drakosha вне форума  
Старый 24.09.2004, 15:09     # 13
VeryLucky
Guest
 
Сообщения: n/a

sharplib
 
Старый 24.09.2004, 21:47     # 14
Crazy_kettle
Junior Member
 
Регистрация: 13.05.2004
Сообщения: 128

Crazy_kettle Известность не заставит себя ждатьCrazy_kettle Известность не заставит себя ждать
Цитата:
Как можно организовать побитную запись/чтение файла?
Никак. Помойму считать с диска меньше, чем размер кластера (не менее 512Кб) нельзя.
Правда, зачем это тебе? Читай в массив, а его потом обрабатывай побитово.
Crazy_kettle вне форума  
Старый 15.10.2004, 18:43     # 15
Вовочка
Guest
 
Сообщения: n/a

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

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

b+=a<<i;

a откуда копируем i бит, b - куда.
 
Старый 15.10.2004, 19:44     # 16
Ghola
Newbie
 
Регистрация: 08.10.2004
Сообщения: 13

Ghola Путь к славе только начался
Опиши свой класс и переопредели для него операторы. А класс этот может быть, например, отображённым на память файлом. См. CreateFileMapping и т.п. Кстати, напоминаю, что есть ещё битовые поля (bit fields) в структурах С, а в С++ также и в классах и объединениях/унионах.
Ghola вне форума  
Старый 23.10.2004, 23:39     # 17
Crazy_kettle
Junior Member
 
Регистрация: 13.05.2004
Сообщения: 128

Crazy_kettle Известность не заставит себя ждатьCrazy_kettle Известность не заставит себя ждать
Цитата:
Сообщение от Вовочка
Меня интересовало нечто типа

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).
Crazy_kettle вне форума  
Старый 24.10.2004, 01:36     # 18
/7y3uK
Advanced Member
 
Аватар для /7y3uK
 
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498

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


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


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




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