• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Использоваение Zlib

  • Автор темы Автор темы Guest
  • Дата начала Дата начала
G

Guest

Всем, Доброго дня!
Возникла необходимость кодировать и декодировать данные с использованием ZLib (Delphi 2010), а точнее используя функции ZCompress и ZDeCompress. Компрессия вроди как получается, но вот обратно ничего не выходит. Выдает - Data Error.

Для проверки наскоряк написал такой код:
Код:
var
InFile:TMemoryStream;
out_buf,o2:pointer;
str:String;
sz:integer;
buf,buf2:array [0..66] of byte;
begin
InFile:=TMemoryStream.Create;
InFile.LoadFromFile('c:\codetext.txt');
InFile.Read(buf,67);
ZCompress(@buf,InFile.Size,out_buf,sz);
InFile.Free;
InFile:=TMemoryStream.Create;
ZDecompress(out_buf,sz,o2,sz);
InFile.Write(o2,sz);
InFile.SaveToFile('c:\sss2.decmp');
end;

Сдесь в файле c:\codetext.txt хрониться одна строка текста которую я компрессирую процедурой ZCompress, затем тутже получившийся результат out_buf пытаюсь декопрессировать ZDecompress(out_buf,sz,o2,sz) и записать результат в файл. В таком варианте ошибки нет, файл создается, но исходного текста так и не видно - содержит в себе полную тарабарщину.

Кто работал с ZLib подскажите пожалуйста как их правильно использовать.
 
Хм. Вопрос номер 1. А на что указывают указатели out_buf и o2? Насколько мне известно, сначала надо выделить область памяти, инициализировать указател, ссылающийся на эту область памяти, а уже потом туда что-то писать, или считывать.
 
Всем, Доброго дня!
Возникла необходимость кодировать и декодировать данные с использованием ZLib (Delphi 2010), а точнее используя функции ZCompress и ZDeCompress. Компрессия вроди как получается, но вот обратно ничего не выходит. Выдает - Data Error.

Для проверки наскоряк написал такой код:
...
Кто работал с ZLib подскажите пожалуйста как их правильно использовать.

Вот рекомендованный embarcadero пример использования ZLib

Скачать там правда дают только зарегистрированным юзерам, поэтому вот (см. в аттаче)
 

Вложения

Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab