Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 812

/ вопрос закрыт /

Приветствую, уважаемые эксперты!

Требуется создать архиватор, который по алгоритму хафмана будет сжимать файл. Проблема в том, что я не знаю как это всё осуществить. как это всё засунуть в файл.

P.S. Вроде как то объяснил, но если что задавайте вопросы, отвечу.)

serox Вопрос закрыт (ответы не принимаются, мини-форум закрыт)

Вопрос задал: serox (статус: Посетитель)
Вопрос отправлен: 12 декабря 2011, 22:20
Состояние вопроса: закрыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 5; последнее сообщение — 14 декабря 2011, 17:00; участников в обсуждении: 3.
min@y™

min@y™ (статус: Доктор наук), 13 декабря 2011, 08:23 [#1]:

Ну, любой алгоритм сжатия подразумевает наличие входного и выходного набора данных. Само сохранение в файл к сжатию никакого отношения не имеет.
В данном случае можно использовать TFileStream.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ерёмин А.А.

Ерёмин А.А. (статус: *Администратор), 13 декабря 2011, 10:52 [#2]:

А Гуглом вам религия запрещает пользоваться? В сети полно исходников кодирования алгоритмом Хаффмана.
serox

serox (статус: Посетитель), 14 декабря 2011, 13:39 [#3]:

Ерёмин А.А.
Нашел только один, ито в нем мне месяц сидеть разбираться... Легче и полезней самому написать...

А так возник вопрос, как перевести файл в бинарный код?
That will be, you and do not learn, if never will try! ^__^
min@y™

min@y™ (статус: Доктор наук), 14 декабря 2011, 13:53 [#4]:

Цитата (serox):

А так возник вопрос, как перевести файл в бинарный код?

Уточни, что должно быть на выходе. А то, ведь, вся инфа в цифровой технике и так хранится в бинарном коде.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
serox

serox (статус: Посетитель), 14 декабря 2011, 17:00 [#5]:

ну я предполагаю так сделать...

сначала делаем статистику
var
  f: file;
  b: byte;
  q: real;
  a: array [0..255] of integer;
  i,FileS: integer;
begin
  for i:=0 to  255 do
    A[i]:=0;
  if OpenDialog1.Execute then begin
    Assignfile(f, OpenDialog1.FileName);
    Reset(f,1);
 
    FileS := FileSize(f);
    while not eof(f) do begin
      blockread(f, b, 1);
      A[b]:=a[b]+1;
    end;
    For i := 0 to 255 do
      ListBox1.Items.Append(IntToStr(i) + ' - ' + inttostr(a[i]) + ';~   ' + FloatToStr(A[i]/FileS));
  end;
из этого после делаем словарь
и файл который надо сжать переводим по одному байту в двоичный код, после соединяем по 8 и засовываем уже в новый файл...
That will be, you and do not learn, if never will try! ^__^

27 мая 2013, 12:10: Вопрос закрыт (решение принял DNK): Всё заглохло

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:48
Выполнено за 0.03 сек.