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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2010, 21:09   #1
saggy
Форумчанин
 
Регистрация: 08.10.2009
Сообщений: 112
Лампочка Технология RAR - Реализация на Delphi

Очень интересно, как сжимаются файлы в архивах. Вообще есть предположение, что похожие сегменты файла сокращаются записью о их расположении. Например файл "978888888260" можно сократить до "97[8х7]260". Но вот как прочитать сам файл, а потом переписать его в сжатом виде? Я могу реализовать сжатие текстовых документов на этой основе, но и тут возникнут некоторые проблемы, связанные с количеством вариантов расположения похожих сегментов. Но это фигня. Я не знаю как прочитать и переписать другие файлы, не текстовые. Можно ли их открывать функциями assignfile и readln? Можно ли быстрее читать и записывать, а то кажется эти функции медленные?
И ещё: сколько примерно инструкций для сжатия есть в технологии RAR? Всмысле сколько RAR знает вариантов сокращения: ведь "7745745783433333" вопервых можно сократить "[7:0,1,4,7][5:3,6][4:2,5,10]33333", а во вторых заменить повторы "3" ещё одним вариантом: "[7:0,1,4,7][5:3,6][4:2,5,10][3x5]".
procedure life; for years := 1 to 11 do gotoschool(normal); woman := TMan.add; childrens.add(TMans); problems.add(fuck); woman.destroy; END.
saggy вне форума Ответить с цитированием
Старый 06.07.2010, 21:19   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Алгоритмов сжатия много. Причем для разных форматов могут использоваться разные.
Про РАР:
Цитата:
Version 3 of RAR is based on Lempel-Ziv and prediction by partial matching (PPM) compression, specifically the PPMd implementation of PPMII by Dmitry Shkarin.
Описание очень легко гуглится ли викится.
p51x вне форума Ответить с цитированием
Старый 06.07.2010, 21:22   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

читается все это бинарно, через File(тип данных) BlockWrite/BlockRead
это именно паскалевское.
Дельфийское это TFileStream(или прочие потоки)
а вообще АПИ
CreateFile,ReadFile,WriteFile,Close Handle
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.07.2010, 21:26   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Для справки. RAR можно официально бесплатно разжимать с помощью UnRAR библиотеки.

А вообще гугли алгоритмы сжатия, Хаффмана и др. В Википедии есть полный список.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 06.07.2010, 22:31   #5
saggy
Форумчанин
 
Регистрация: 08.10.2009
Сообщений: 112
По умолчанию

ух ты спасибо за инфу
procedure life; for years := 1 to 11 do gotoschool(normal); woman := TMan.add; childrens.add(TMans); problems.add(fuck); woman.destroy; END.
saggy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация фрактальных объектов в Delphi Кос Помощь студентам 2 04.04.2010 15:06
Реализация многопоточностив Delphi BloodMaX Помощь студентам 3 20.03.2010 19:21
реализация пути эйлера на Delphi J.K. Помощь студентам 4 12.06.2009 21:21
[Delphi] TQuery и реализация запроса. MaGWaY_minsk Помощь студентам 2 12.05.2009 00:31
Реализация BlowFish на Delphi Unconnected Общие вопросы Delphi 2 19.02.2009 12:52