Fórum Compressão c/ a Zlib.pas da RTL #225300
12/04/2004
0
Estive realizando algumas expreiências de compressão/descompressão de arquivos com a unit Zlib.pas (19 Kb), que a companha o Delphi e se encontra na pasta RTL. A conclusão/problema que constatei está na descompressão, pois para efetuá-la eu tenho que saber o tamanho em bytes do arquivo original (arquivo sem estar comprimido), desde que este é um parâmetro que deve ser informado para a alocação de memória, que em virtude será acupada pelo arquivo descomprimido.
A tentativa de teste que efetuei foi esta: após comprimir um arquivo eu o abri, textualmente em um componente memo, apartir daí tive a idéia de incluír o valor original (o tamanho do arquivo original que eu preciso saber o valor, quando, posteriormente for descomprimido) do arquivo neste memo. Seria como sinalizar o conteúdo do arquivo, imbutindo esta informação adicional...
Moral da história. Se eu tenho uma variável do tipo TMemoryStream, e esta contém o conteúdo do arquivo comprimido, e posso abrir este conteúdo (stream) em um componente memo (no modo textual). Como eu faço para incluír alguns algarísmos (valor do arq. original) neste conteúdo, e depois lê-lo/retirá-lo com facilidade, no momento que for solicitado na descompressão?
A tentativa de teste que efetuei foi esta: após comprimir um arquivo eu o abri, textualmente em um componente memo, apartir daí tive a idéia de incluír o valor original (o tamanho do arquivo original que eu preciso saber o valor, quando, posteriormente for descomprimido) do arquivo neste memo. Seria como sinalizar o conteúdo do arquivo, imbutindo esta informação adicional...
Moral da história. Se eu tenho uma variável do tipo TMemoryStream, e esta contém o conteúdo do arquivo comprimido, e posso abrir este conteúdo (stream) em um componente memo (no modo textual). Como eu faço para incluír alguns algarísmos (valor do arq. original) neste conteúdo, e depois lê-lo/retirá-lo com facilidade, no momento que for solicitado na descompressão?
Nerdex
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)