forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Прочие вопросы (http://forum.boolean.name/forumdisplay.php?f=50)
-   -   Как запаковать и извлеч картинки и прочюю информацию в DAT? (http://forum.boolean.name/showthread.php?t=8440)

аааааааааа 06.06.2009 17:02

Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
Помогите!!! Как запаковать и извлеч картинки и прочюю информацию в DAT файлы?:SOS:

ViNT 06.06.2009 18:12

Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
Нужна программа-упаковщик на компе и класс-распаковщик в мидлете. Формат такой: ID ресурса (1-2 байта), размер ресурса S (4-8 байт) данные ресурса (S байт) и так для каждого ресурса. Алгоритм упаковки - пишем в поток ID, потом размер, потом данные. Распаковка - читаем ID, читаем размер S, читаем S байт ресурса и так до конца файла. На сколько быстрой будет распаковка, зависит от реализации распаковщика.

аааааааааа 06.06.2009 20:35

Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
а где можно скачать такую программу или как она хотябы называется?

ViNT 06.06.2009 21:14

Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
Цитата:

Сообщение от аааааааааа (Сообщение 106855)
а где можно скачать такую программу или как она хотябы называется?

Возможно где-то есть, но я таких не встречал.
Самому писать придется, но это в общем-то несложно.

temned 06.06.2009 22:11

Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
Я давно как - то искал програмку - нигде нет, так что сам постарайся и попачкай ручки

Richik 07.06.2009 14:10

Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
вот в этой теме идет вялое осуждение данного вопроса.

odd 18.06.2009 22:45

Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
Есть идея такое написать.
Да и в "библиотеках" идет живое обсуждение данного вопроса.
Раз наболело, нужно писать.

ViNT 18.06.2009 23:26

Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
Что касается упаковщика под Windows - могу написать без проблем.
А на счет библиотеки-распаковщика - надо думать над оптимизацией, чтобы не тормозило.

odd 20.06.2009 02:32

Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
Я уже начал писать паковщик для компа, правда на Java (swing) тоже.
Могу написать библиотеку по распаковке всего этого дела.
Или давайте ViNT напишет запаковщик, а я напишу распаковщик.

Идея такая. Состав файла с информацией:
первые 2 байта - количество файлов в пакете
потом идет список длин файлов (тоже по 2 байта каждый)
а потом уже идут сами файлы, просто склеенные пока.
В итоге получаем до 65535 файлов в пакете по 64Кб максимум каждый.
Позже можно будет добавить и шифрацию. Как идея? Обсуждаем?

ViNT 20.06.2009 12:46

Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
Цитата:

Сообщение от odd (Сообщение 108315)
потом идет список длин файлов (тоже по 2 байта каждый)

Может под размер 4 байта отвести? Редко конечно, но ресурс может быть и больше 64 Кб.

На счет упаковщика - как только определимся со структурой, могу приступить к написанию. Также, думаю, в программу стоит добавить и распаковщик, на всякий случай.

odd 20.06.2009 18:14

Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
Мне кажется, что для мобилы и 64Кб хватает с головой.
Картинок больше 64Кб я не виде ни в одной игре.
Но хорошо, ради совместимости с учетом будущего развития мобильных телефонов будем делать указатели на длину файла 4 байта.
Значит определились. Количество кусков - 2 байта, длины по 4 байта.
Порядок байт по Intel конвенции т.е. сначала идет младший байт, а потом старшие. Сразу предусмотри кодирование файлов по принципу XOR с 32 битным ключом (или произвольной длины). Кодирование вот только не знаю как лучше делать. Сквозное или для каждого файла отдельно? Шифрация/дешифрация проходит так: первый байт файла ксорится с первым байтом ключа, второй байт файла со вторым байтом ключа и т.п. Лучше сделать произвольную длину ключа. Можно ещё сделать дополнительно циклический скроллинг байта на N битов. Короче, я уже начинаю делать наброски библиотеки.

Phantom 21.06.2009 00:33

Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
А зачем
Цитата:

Порядок байт по Intel конвенции т.е. сначала идет младший байт, а потом старшие.
?
Я никогда не понимал, почему так, а не наоборот. Логичнее ведь делать наоборот.

ViNT 21.06.2009 02:40

Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
Цитата:

Сообщение от Phantom_wc (Сообщение 108396)
А зачем ?
Я никогда не понимал, почему так, а не наоборот. Логичнее ведь делать наоборот.

Вроде бы это связано с особенностями архитектуры x86, в ARM наоборот.

Только вот я сейчас подумал - а как дельфовский TFileStream пишет? Можно ли использовать его метод write(buf,size), передавая в качестве buf значения типа word и integer, или он наоборот переворачивает?

odd 22.06.2009 18:11

Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
Цитата:

Сообщение от Phantom_wc (Сообщение 108396)
А зачем ?
Я никогда не понимал, почему так, а не наоборот. Логичнее ведь делать наоборот.

Просто процы у Intel немного хитромудрые. При битовых и арифметических операциях они уже их производят до того как само число полностью загрузилось. К примеру, нужно увеличить четырех байтовое число (int) на единицу. В ассемсблере для этого есть команда inc. Сам же процессор производит операцию примерно так: сначала считывает младший байт (он первее идет) и увеличивает его на 1, если произошло переполнение, выставляется ссответсвующий флаг в процессоре и тогда единица перейдет и в следующий по старшинству байт. Таким образом получается, что операции над числом такие как сложение, вычитание и проч. происходят параллельно со считыванием данного числа из памяти, что безусловно добавляет скорости при таких операциях. Если же порядок байт был противоположным, пришлось бы сначала считать все 4 байта, а потом уже производить над ними операции, а так уже скорость теряется.

SBJoker 22.06.2009 18:57

Ответ: Как запаковать и извлеч картинки и прочюю информацию в DAT?
 
Что то я сильно неуверен что данные из памяти побитно читаются, во всяком случае теперь. Ибо поиск и начало процедуры получения данных из памяти несамая быстрая вещь. Например современный процессор быстрее посчитает значение синуса любого угла чем прочтёт готовое значение из памяти, вот как...


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot