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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 26.04.2013, 08:37
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Вот этот пост читай http://www.delphisources.ru/forum/sh...7&postcount=13
Я тебе пример понаписал в самом низу.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #17  
Старый 26.04.2013, 08:46
DrGeorg DrGeorg вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 38
Версия Delphi: RAD Studio XE3
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Я дописал, глянь мой пост. У меня вроде работает нормально, по крайней мере вход до сжатия совпадает с выходом после распаковки.
Если из памяти, то надо как-то так передавать параметр: integer(ptr^).
А что хранится в переменных source, dest?
__________________
Все смелые до begin...
Ответить с цитированием
  #18  
Старый 26.04.2013, 08:49
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Адреса так передаются.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #19  
Старый 26.04.2013, 08:56
DrGeorg DrGeorg вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 38
Версия Delphi: RAD Studio XE3
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Код:
lzocompress(foo[0], bar[0], 11)
Выдает ошибку: Too many actual parameters
__________________
Все смелые до begin...
Ответить с цитированием
  #20  
Старый 26.04.2013, 08:58
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Мой inc файл подруби, у меня все норм работает.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #21  
Старый 26.04.2013, 09:06
DrGeorg DrGeorg вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 38
Версия Delphi: RAD Studio XE3
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Код:
lzodecompress(bar[0], foo[0]);
Ну у меня тоже все работает, тока как туда MyFile.lzo подставить?
__________________
Все смелые до begin...
Ответить с цитированием
  #22  
Старый 26.04.2013, 09:09
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
var
  ms, ms2: TMemoryStream;
  zs: TCompressionStream;
begin
  ms :=  TMemoryStream.Create;
  ms2 := TMemoryStream.Create;
//  zs := TCompressionStream.Create(ms2, zcMax);
  try
    ms.LoadFromFile('чото-там');
//    zs.CopyFrom(ms, ms.Size);
    ms2.Size := 1024*1024*10;

    ms2.Size := lzocompress(Byte(ms.Memory^), Byte(ms2.Memory^), ms.Size);
    ms2.SaveToFile('C:\qqq.lz');
  finally
    ms2.Free;
    ms.Free;
  end;

Думаю дальше разберешься как что делать.

кстати, zLib уделывает этот алгоритм по степени сжатия, но проигрывает в скорости.

LZO - 634 КБ (649 747 байт)
zLib - 448 КБ (458 752 байт)
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #23  
Старый 26.04.2013, 09:13
DrGeorg DrGeorg вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 38
Версия Delphi: RAD Studio XE3
Репутация: 10
По умолчанию

Спасибо, конечно, но меня больше lzodecompress интерресует!..
Кстат у LZO тоже есть степени сжатия, но они прямо пропорциональны скорости...
__________________
Все смелые до begin...

Последний раз редактировалось DrGeorg, 26.04.2013 в 09:17.
Ответить с цитированием
  #24  
Старый 26.04.2013, 09:18
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Ну ДЕкомпресс аналогично вызывается. Я надеюсь ты сам сможешь написать, тем более, что примеров накидал тебе более чем достаточно.

З.Ы. В этой реализации не вижу где настраивается степень сжатия.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию

Последний раз редактировалось M.A.D.M.A.N., 26.04.2013 в 09:21.
Ответить с цитированием
  #25  
Старый 26.04.2013, 09:35
DrGeorg DrGeorg вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 38
Версия Delphi: RAD Studio XE3
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
З.Ы. В этой реализации не вижу где настраивается степень сжатия.
http://yadi.sk/d/trb9HmQC4MM2m
Там в консоли надо ввести параметр:
zlop -7 или -8 или -9 "Путь\Имя Файла.расш"
или
zlop "Путь\Имя Файла.расш"
Поймешь разницу!
Да кстат, а откуда взялся класс TCompressionStream?
Я просто профан в области создания классов

Код:
var
  ms, ms2: TMemoryStream;
begin
  ms :=  TMemoryStream.Create;
  ms2 := TMemoryStream.Create;
  try
    ms.LoadFromFile('C:\qqq.lzo');
    ms2.Size := 1024*1024*10;
 
    ms2.Size := lzodecompress(Byte(ms.Memory^), Byte(ms2.Memory^), ms.Size);
    ms2.SaveToFile('C:\qqq.txt');
  finally
    ms2.Free;
    ms.Free;
  end;
Ошибка: пишет - Too many actual parameters
__________________
Все смелые до begin...

Последний раз редактировалось DrGeorg, 26.04.2013 в 10:39.
Ответить с цитированием
  #26  
Старый 26.04.2013, 10:33
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Потому, что ф-я принимает 2 параметра. Странно, что ты не заметил.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #27  
Старый 26.04.2013, 10:38
DrGeorg DrGeorg вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 38
Версия Delphi: RAD Studio XE3
Репутация: 10
По умолчанию

Да я и так пытался:
Код:
var
  ms, ms2: TMemoryStream;
begin
  ms :=  TMemoryStream.Create;
  ms2 := TMemoryStream.Create;
  try
    ms.LoadFromFile('C:\qqq.lzo');
    ms2.Size := 1024*1024*10;
  
    ms2.Size := lzodecompress(Byte(ms.Memory^), Byte(ms2.Memory^));
    ms2.SaveToFile('C:\qqq.txt');
  finally
    ms2.Free;
    ms.Free;
  end;
Но компилит...
Правда ошибка: Access violation at address

http://forum.sources.ru/index.php?showtopic=38911
__________________
Все смелые до begin...

Последний раз редактировалось M.A.D.M.A.N., 26.04.2013 в 11:45.
Ответить с цитированием
  #28  
Старый 26.04.2013, 14:33
DrGeorg DrGeorg вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 38
Версия Delphi: RAD Studio XE3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
З.Ы.
Это основной алгоритм сжатия архиватора 7Zip.
Тока почему-то 7-Zip не берет архив LZO!!!
__________________
Все смелые до begin...
Ответить с цитированием
  #29  
Старый 26.04.2013, 15:17
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Оффтоп:

Цитата:
Сообщение от DrGeorg
Тока почему-то 7-Zip не берет архив LZO...

потому как LZO и 7Zip слегка различаются заголовками
Цитата:
LZO HEX: 4C 5A 4F 00 0D 0A 1A
ASCII: Й L Z O .

7Zip HEX: 37 7A BC AF 27 1C 1A
ASCII: 7 z пг п

пг - псевдографика
если его заменить, то откроет
Ответить с цитированием
  #30  
Старый 26.04.2013, 15:17
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Потому, что в 7зип используется LZMA. LZMA - это разновидность LZ алгоритма (т.е. алгоритм LZ лежит в основе).
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию

Последний раз редактировалось M.A.D.M.A.N., 26.04.2013 в 15:27.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter