Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.10.2010, 21:38
paratrooper paratrooper вне форума
Прохожий
 
Регистрация: 23.05.2009
Сообщения: 12
Репутация: 10
Лампочка Экстрактер ресурсов

Добрый день.

Подскажите, с помощью каких принципов, методов, extracter определяет, что вот эта цепочка байтов - звук, вот эта - картинка, вот это - видео?

Какие принципы лежат в основе интерпретации/конвертирования цепочки байтов, если ты точно знаешь, что здесь запакованы ресурсы (особенно если файл называется sounds.pak)? Как написать программу, которая извлекает?

В принципе небольшой опыт с Делфи уже есть. Благодаря подсказкам с этого форума (и упорного изучения учебника делфи) сам написал редактор сейв-файлов (3300 строк) ну и еще 1 прогу.

С чего начать?
Ответить с цитированием
  #2  
Старый 30.10.2010, 22:03
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от paratrooper
Подскажите, с помощью каких принципов, методов, extracter определяет, что вот эта цепочка байтов - звук, вот эта - картинка, вот это - видео?


Если не вдаваться в подровбности и простыми словами:


Или расширение файла, например .jpg .bmp или же по содержимому, например, начало файла BM6.... .
Но если данные в файл записаны каким-то самописным алгоритмом, то тогда нужно искать тот алгоритм и им же открыть, или же пытаться востановить данные в ручном режиме.
Ответить с цитированием
  #3  
Старый 30.10.2010, 22:04
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

Цитата:
с помощью каких принципов, методов, extracter определяет, что вот эта цепочка байтов - звук, вот эта - картинка, вот это - видео?
обычно прямо перед данными или в индекс-таблице есть идентификаторы, которые и показывают, что это за данные
например, запись о данных может быть такой:
Код:
| длина имени | имя       | тип данных  | размер данных | данные |
| 7           | 001.png   | 3 {3=Image} | 102400        | .....  |
| 8           | kill.wav  | 2 {2=Sound} | 204800        | .....  |
из 3 поля видно, что это за тип ресурса. Иногда тип не указывается, например, в файлах-архивах, где имитируется кусок ФС (.cgf, .mpq и подобные). в этом случае прога и так знает, что доставать из файла
Цитата:
Как написать программу, которая извлекает?
поискать спецификации того или иного формата. если они есть - то просто читать файл в соответствии с ней. если нет - то тут встает довольно трудная задача "раскодирования" файла ресурсов - узнать, что означает то или иное поле в файле, какого оно типа, как располагаются сами ресурсы - один за другим, разделенные заголовками или же заголовки в начале файла, а данные спошняком в конце и т.д. файл может быть еще и зашифрован, такие файлы можно открыть только зная их спецификацию.
универсальный же экстрактор написать в принципе нельзя
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:30.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025