Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2014, 00:44   #1
SDK
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 12
Смущение Распаковщик на Delphi

Помогите пожалуйста написать распаковщик, дело в том что известен только размер файлов причем вместе с заголовком и предыдущим файлом.
Думал сделать так: FOffset = FSize2 - FSize1, но я так понимаю будет работать только для первого файла, даьше будет читаться файл2 и файл3, а надо файл2 и файл1, и так далее. файлов может быть разное количество.

SDK вне форума Ответить с цитированием
Старый 06.04.2014, 02:13   #2
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

Без наличия чёткого ответа на вопрос о алгоритмах упаковки распаковать HEX практически невозможно, если только речь не о простейших последовательных алгоритмах.
XE5 вне форума Ответить с цитированием
Старый 06.04.2014, 02:45   #3
SDK
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 12
По умолчанию

просто идетзаголовок в котором первые 4 байта размер заголовка, а дальше каждые 4 байта размер фала с начала заголовка, на скриншоте показан пример с 7ю файлами
SDK вне форума Ответить с цитированием
Старый 06.04.2014, 02:58   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от SDK Посмотреть сообщение
а дальше каждые 4 байта размер фала с начала заголовка
Переведи на русский-понятный словосочетание "размер файла с начала заголовка".
northener вне форума Ответить с цитированием
Старый 06.04.2014, 03:44   #5
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

SDK А имя заголовка куда делось? Или заголовок имеет только размер? Тогда это не заголовок, а указатель на количество файлов в архиве, и к заголовку он не имеет ни какого отношения. Прошу уточнить этот момент.
XE5 вне форума Ответить с цитированием
Старый 06.04.2014, 09:14   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Да. Без чтения мыслей, тут никак не обойтись (извините за флуд).
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 06.04.2014, 20:57   #7
SDK
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 12
По умолчанию

в общем ладно, объяснить я так понимаю не смогу, хотя на скриншоте вроде все видно, я специально красным выделил 32 байта, здесь хранятся размеры файлов.
Кто нибудь знает пример распаковщика когда известны только размеры файлов без их смещения.
SDK вне форума Ответить с цитированием
Старый 06.04.2014, 21:06   #8
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

SDK Работа с файловыи потоком, поиск порченого байта
Для ясности ресурс, это тот же архив. Ну и ресурс мне попался очень простой, поэтому перепаковал его потрудившись всего пару дней. В итоге была определена следующая структура
4 байта - количество файлов в архиве
перечисление по 4 байта - размеры файлов в архиве
далее сами файлы, позиции начала и конца которых определены шапкой. Возможно у Вас аналогичная структура.
XE5 вне форума Ответить с цитированием
Старый 06.04.2014, 21:28   #9
SDK
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 12
По умолчанию

Количество файлов прописано в начале файла, потом смещение, далее идет куча мусора фиксированного размера, я иду по смещению, попадаю к нужным мне файлам, первые 4 байта на скриншоте солатневый цвет (в данном примере 20 00 00 00) это размер заголовка он весь выделен красным, далее 4 байта в этом заголовке идет размер первого файла с учетом всего заголовка, следующие 4 байта размер второго файла с учетом заголовка и первого файла, и так далее, вроде уже все подробно объяснил
SDK вне форума Ответить с цитированием
Старый 06.04.2014, 21:46   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Кто нибудь знает пример распаковщика когда известны только размеры файлов без их смещения
Такого примера нет в природе. И отсутствие смещения как такового не значит, что его нельзя вычислить, зная устройство файла. Вычислите смещение 1-го. Тогда скорее всего прибавив к нему длину первого получите смещение 2-го и т.д. Но повторяю - скорее всего, т.к. не знаю устройство файла
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распаковщик файла .sf darkdoren Общие вопросы C/C++ 4 03.08.2013 13:25
Распаковщик-конвертер 3д формата типа .dff Brutalus Фриланс 0 17.11.2012 13:13
Хочу написать распаковщик формата Anton911 Общие вопросы Delphi 4 05.05.2012 10:43
bash-распаковщик архивов SNake Ice Помощь студентам 0 02.04.2011 04:31
Нужен распаковщик .ехе файлов Veselyn Софт 3 03.05.2009 06:24