Einzelnen Beitrag anzeigen

GreenHorn3600

Registriert seit: 24. Jun 2007
165 Beiträge
 
#5

Re: Ordentliche Komprimierungsunit

  Alt 16. Aug 2009, 00:12
Hallo Luckie,

dann mal viel Spass beim Suchen . Habe gerade ein kleines Testprojekt zusammengezimmert, sollte aber für einen Einblick genügen.

Edit: Update der Compremierungsroutine (Position := 0 vergessen)
Delphi-Quellcode:
procedure TForm2.Compress;
var
  zc: TZCompressionStream;
  ms1: TMemoryStream;
  buff: array [0..2048] of byte;
  len: integer;
begin
  ms1 := TMemoryStream.Create;
  try
   zc := TZCompressionStream.Create(ms1, zcMax);
   try
     ms.Position := 0;
     repeat
       len := ms.Read(buff, 2048);
       zc.Write(buff, len);
     until len <> 2048;
     lRateOfCompression.Caption := Format('%.3f', [zc.CompressionRate]);
     ms.Position := 0;
     ms.CopyFrom(ms1, ms1.Size);
   finally
      zc.free;
    end;
  finally
    ms1.Free;
  end;
end;
Grüße
das GreenHorn
Angehängte Dateien
Dateityp: pas unit2_157.pas (1,7 KB, 8x aufgerufen)
Dateityp: dfm unit2_823.dfm (1,9 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat