Newsgroup: it.comp.lang.delphi
Titolo: componente per zippare e unzippare

Salve cerco questo componente per gestire gli zip. ho guardato su torry ma
ho trovato solo roba molto complicata, che necessita di conoscere algoritmi
e parametri di compressione ecc ecc..
io vorrei qualcosa tipo
Zip(nomefile:string);
e
Unzip(nomefile:string);
Nulla di piu'.. qualcosa mi semplice insomma..
Qualcuno ha nulla ?
Grazie!            {MSX}
--
{MSX}  -  
http://msx.rules.it
Mantenitore delle FAQ di it.comp.lang.delphi,
reperibili qui: 
http://gpi.infomedia.it/abc/delphi/FaqDelphi.txt

io cell'ho :P
Se lo vuoi contattami su 
dm...@virgilio.it
ciaoux!!!

 e parametri di compressione ecc ecc..
beh, in zlib ci sono due classi discndenti da TStream che fanno
compressione - decompressione e sono piuttosto semplici da usare. Se hai
la Pro dovresti averli, almeno come package.
Saluti
Paolo Arosio

addZIP Compression Library che sono relativamente facili... peccato che
bisogna comprarle !!!
"{MSX}" <nlugat...@THISinwind.it> ha scritto nel messaggio
news:Tooe8.21117$v7.8...@twister1.libero.it...


Confermo quanto dice Paolo Arosio, due risposte sopra.
Non so perň se questo formato sia compatibile con gli 'ZIP' classici.
Ad ogni modo, ecco un esempio di due funzioni che 'traducono' un file da
compresso a non compresso e viceversa.
Tralasciando ogni commento sul perchč siano fatte cosě, e sul fatto che il
file trmporaneo sarebbe meglio crearselo con
    getTempPath(255,tempPath);
    getTempFileName(tempPath, 'MCAD', 0, tempFileName);
quando le ho scritte un paio d'anni fa funzionavano.
I files relativi alla libreria di compressione mi sembra siano sul cd
companion tools allegato a delphi. (almeno sulla 5 pro c'erano...)
Spero ti servano.
Ciao.
//==========================================================================
====
function TCadProject.EncodeProject(pName: string): integer;
//==========================================================================
====
var
    Buffer :array[word] of char;
    iStream,
    oStream :TFileStream;
    ZStream :TCustomZLibStream;
    bt   :integer;
begin
 CopyFile(pchar(pName), 'MCadTempFile.$$$', False);
 oStream := TFileStream.Create(pName, fmOpenWrite or fmCreate);
 iStream := TFileStream.Create('MCadTempFile.$$$', fmOpenRead);
 ZStream := TCompressionStream.Create(FZipRate, oStream);
   Result := 0;
   bt := iStream.Read(Buffer, 65535);
   while bt > 0 do begin
    Inc(Result, Bt);
    ZStream.Write(Buffer, bt);
    bt := iStream.Read(Buffer, 65535);
   end;
   iStream.Free;
   ZStream.Free;
   oStream.Free;
end;
//==========================================================================
====
function TCadProject.DecodeProject(pName: string): integer;
//==========================================================================
====
var
   Bu   :array[word] of char;
   iStream,
   oStream :TFileStream;
 ZStream :TCustomZLibStream;
   rd   :integer;
begin
 DeleteFile('.\MCadTempFile.$$$');
 RenameFile(pName, '.\MCadTempFile.$$$');
 oStream := TFileStream.Create(pName, fmOpenWrite or fmCreate);
 iStream := TFileStream.Create('.\MCadTempFile.$$$', fmOpenRead);
 ZStream := TDecompressionStream.Create(iStream);
   rd := ZStream.Read(bu, 4096);
   while rd > 0 do begin
      oStream.Write(bu, rd);
    rd := ZStream.Read(bu, 4096);
   end;
 Result := oStream.Size;
   ZStream.Free;
   iStream.Free;
 oStream.Free;
end;