![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2007
Сообщений: 157
|
![]()
Доброго времени суток! Вот пытаюсь создать свой упаковщик файлов и столкнулся с определенными сложностями...
Вопрос таков: как можно организовать разделение архива на тома? т. е. как вообще организовать томную структуру архива, чтобы распаковщику было удобно его читать? Может кто уже проходил данную тему, подскажет как правильнее будет... Придумал пока вот что: Объявления типов: Код:
а) Если первый том архива, то пишем такую структуру Сначала размер текстового заголовка Код:
Код:
Код:
б) Если другой том и т.д., то пишем такую структуру Сначала размер текстового заголовка Код:
Код:
Код:
2. Структура массива данных Сначала записываем заголовок файла: Код:
а после всего, в конец архива (1 тома) записываем все заголовки и имена файлов и папок, для навигации по архиву. Фактически дублируем все структуры заголовков файлов, отличие только в том, что здесь будет и структуры папок и некоторые параметры игнорируются если в атрибутах указано что это папка. Пишу в конец файла, так как считаю, что потом будет легче добавлять новые файлы в архив без его перепаковки... Навигация осуществляется так: каждый файл или папка имеет уникальный ID, а так же родительский ParentID. ParentID указывает на ID папки в которой находится файл или папка. Но вот вопрос в том как организовать разделение архива на тома с фиксированным размером? Как реализовать саму процедуру упаковки файлов в архив и разделение тут же на тома... Может у кого есть свои наработки, может идеи или мысли по этому поводу... Мне все, что угодно пригодится... Заранее спасибо! |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Немного отойду от темы: А сам компрессор уже есть?
Просто мне интересны принципы компресиии, изучал LZ но пока швах в практике написания такого.
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Для начала почитал бы например это
http://www.win-rar.ru/support/knowle...il.php?ID=1081 все таки умные люди разрабатывали. Идея записи оглавления в конец архива порочна - что делать при добавлении файлов в архив?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#4 | ||
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2007
Сообщений: 157
|
![]() Цитата:
Использую пока Uses ZLib; TCompressionStream и TDecompressionStream Цитата:
Архив возможно редактировать только, если он не разделен на несколько томов... Ну вот пример: Есть у нас архив с 3 файлами. Расположение его заголовка мы всегда знаем и можем его переписать. То есть можем указать в заголовке где находится структуры для навигации. Вот нам нужно записать 4-ый файл. Пишем его прямо в позицию, где находились структуры навигации, а за ним опять же записываем их.... И обновляем заголовок архива, там указываем что у нас уже 4 файла и позиция структур изменилась на ..... Вот мы и добавили файл... |
||
![]() |
![]() |
![]() |
#5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблемы при создании диалогового окна | Sauber | Win Api | 0 | 14.11.2013 21:51 |
проблемы в создании отчета | daimos91 | Microsoft Office Excel | 14 | 21.08.2010 13:51 |
Проблемы кодировки при создании .CFM страниц в Dreamweaver CS3 | bp-alex | Софт | 1 | 01.05.2010 17:51 |
Проблемы в создании компонента | amico | Помощь студентам | 6 | 15.11.2009 19:45 |
При создании формы! | Anton | Помощь студентам | 4 | 08.08.2007 08:20 |