Dúvida para compactar arquivos

Delphi

14/02/2008

Olá pessoal, estou encontando dificuldades para utilizar a ZLib no Delphi 7, peguei um exemplo na internet para compactar arquivos
procedure TForm1.CompressFiles(Files: TStrings; const Filename: String);
var
  infile, outfile, tmpFile : TFileStream;
  compr : TCompressionStream;
  i,l : Integer;
  s : String;
begin
  if Files.Count > 0 then
  begin
    outFile := TFileStream.Create(Filename,fmCreate);
    try
      l := Files.Count;
      outfile.Write(l,SizeOf(l));
      for i := 0 to Files.Count-1 do
      begin
        infile := TFileStream.Create(Files[i],fmOpenRead);
        try
          s := ExtractFilename(Files[i]);
          l := Length(s);
          outfile.Write(l,SizeOf(l));
          outfile.Write(s[1],l);
          l := infile.Size;
          outfile.Write(l,SizeOf(l));
          tmpFile := TFileStream.Create(´tmp´,fmCreate);
          compr := TCompressionStream.Create(clMax,tmpfile);
          try
            compr.CopyFrom(infile,l);
          finally
            compr.Free;
            tmpFile.Free;
          end;
          tmpFile := TFileStream.Create(´tmp´,fmOpenRead);
          try
            outfile.CopyFrom(tmpFile,0);
          finally
            tmpFile.Free;
          end;
        finally
          infile.Free;
        end;
      end;
    finally
      outfile.Free;
    end;
    DeleteFile(´tmp´);
  end;

end;

Mas dá o erro Undeclared Identifier:´TCompressionStream´, aí não compila, já declarei a ZLib no Uses da Unit, mas dá esse erro, o que mais eu tenho que fazer para utilizar a ZLib para compactar e descompactar no Delphi 7?
Se alguém puder me ajudar eu agradeço!!


Taraciuk

Taraciuk

Curtidas 0

Respostas

Onjahyr

Onjahyr

14/02/2008

[b:558986f354]TCompressionStream[/b:558986f354]
Creio que seja uma classe de um componente que faltou instalar... As vezes vc tem que criar o pacote (package). Verifique junto do arquivo ZLib se vem outros arquivos com a extensão [b:558986f354].DCR[/b:558986f354], se tiver é que falta instalar....
Procure na internet o programa de instalação do componente [b:558986f354]Zipmaster[/b:558986f354], é um pacote completo para se usar compactação, vem com vários exemplos prontos, ele é freeware e possui os fontes. Genial, eu uso ele!


GOSTEI 0
Paullsoftware

Paullsoftware

14/02/2008

[b:c88339ab17]TCompressionStream[/b:c88339ab17] Creio que seja uma classe de um componente que faltou instalar... As vezes vc tem que criar o pacote (package). Verifique junto do arquivo ZLib se vem outros arquivos com a extensão [b:c88339ab17].DCR[/b:c88339ab17], se tiver é que falta instalar.... Procure na internet o programa de instalação do componente [b:c88339ab17]Zipmaster[/b:c88339ab17], é um pacote completo para se usar compactação, vem com vários exemplos prontos, ele é freeware e possui os fontes. Genial, eu uso ele!
com certeza o ZipMaster é o melhor compactador que já usei... você pode baixar ele daqui
[url=http://www.delphizip.org/]Site do Componente[/url]
[url=http://v179.delphizip.org/index.html]Se preferir pode ir direto a página com a lista das versões[/url] ou efetuar o [url=http://v179.delphizip.org/files/zm1790802.zip]Download da Versão v1.79[/url]
O único inconveniente é ter que carregar junto a sua aplicação as dll´s do mesmo, mais é raro ter uma aplicação que não precise de dll hoje em dia :wink:


GOSTEI 0
Onjahyr

Onjahyr

14/02/2008

a DLL é apenas uma: [b:e7e128aaa6]DelZip179.dll[/b:e7e128aaa6] e voce poderá jogar dentro da pasta [b:e7e128aaa6]System32[/b:e7e128aaa6] e nem se preocupar mais com isso, tanto no seu computador (que já deve estar após a instalação) quanto a do computador que tem o seu programa.
Quanto ao uso de DLL, todos os compactadores que conheço (for Windows) tem DLL e como o companheiro disse, hoje em dia programa sem DLL é difícil, eles fazem parte do nosso dia-a-dia (ainda bem, imagine o tamanho dos aplicativos se não fossem eles) :lol:

O bom, é que este componente aceita não só a extensão .zip como outras...

Blz


GOSTEI 0
Paullsoftware

Paullsoftware

14/02/2008

a DLL é apenas uma: [b:8a077e0c23]DelZip179.dll[/b:8a077e0c23] e voce poderá jogar dentro da pasta [b:8a077e0c23]System32[/b:8a077e0c23] e nem se preocupar mais com isso, tanto no seu computador (que já deve estar após a instalação) quanto a do computador que tem o seu programa. Quanto ao uso de DLL, todos os compactadores que conheço (for Windows) tem DLL e como o companheiro disse, hoje em dia programa sem DLL é difícil, eles fazem parte do nosso dia-a-dia (ainda bem, imagine o tamanho dos aplicativos se não fossem eles) :lol: O bom, é que este componente aceita não só a extensão .zip como outras... Blz
Aham.... Eu sei, uso ele e como eu disse é o melhor que ví até hoje!!!


GOSTEI 0
POSTAR