Показать сообщение отдельно
  #6  
Старый 21.01.2023, 14:43
Shaft Shaft вне форума
Новичок
 
Регистрация: 15.05.2013
Сообщения: 74
Версия Delphi: 7/10.4
Репутация: 12
По умолчанию

Код:
procedure decompress;
var
  s_dec:TDecompressionStream;
  s_in,s_out:TMemoryStream;
const block=64;
      offset=8;
begin
  s_in:=TMemoryStream.Create;
  s_out:=TMemoryStream.Create;
  s_in.LoadFromFile('test.bin');
  repeat
    s_in.Position:=s_in.Position+offset;
    s_dec:=TDecompressionStream.Create(s_in);
    if s_in.Position+block<=s_in.Size then
      s_out.CopyFrom(s_dec,block)
    else
      s_out.CopyFrom(s_dec,s_in.Size-s_in.Position-offset);
    s_dec.Free;
  until s_in.Position>=s_in.Size;
  s_out.SaveToFile('decompress.bin');
  s_in.Free;
  s_out.Free;
end;
Ответить с цитированием