FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Descomprimir un archivo gzip con Delphi
Hola:
Buscando una forma limpia(1) de comprimir / descomprimir un archivo -si puede ser más de uno mejor, pero no imprescindible- he encontrado este post de Seaone, que realiza la primera parte: La compresión. Quizá sea "sencillo", pero ¿cómo podría implementar la función inversa? Decir por último que uso Delphi 7. Muchas gracias de antemano. (1) Limpia: .- Sin dll externas, tal como ocurre con 7-zip .- Sin requerir componentes extras, como abrevia, jcl, ...
__________________
Sonríe. Mañana puede ser peor. |
#2
|
||||
|
||||
El no requerir bibliotecas externas lo veo complicado. De todas formas, el algoritmo de descompresión que usa gzip es libre de patentes (bueno, y su compresión también desde hace pocos años, si no recuerdo mal) así que siempre puedes escribirlo tu.
Free Pascal incluye compresión y descompresión de corrientes (TStream) con algoritmo gzip. Creo que usa bibliotecas externas, pero no estoy del todo seguro, y nada te impide echarle un ojo a su código fuente que puedes descargar desde aquí. Concretamente en ./packages/paszlib/src/zstream.pp. Con suerte puede que compile en Delphi sin (muchos) cambios, aunque te prevengo de que tiene bastantes dependencias. Ah, y recuerda que gzip únicamente comprime los datos, no empaqueta ficheros. Para empaquetar ficheros se usa, normalmente, TAR. Free Pascal también incluye la creación de archivos TAR vía corrientes. Busca ./packages/fcl-base/src/libtar.pp. Última edición por Ñuño Martínez fecha: 07-05-2013 a las 21:26:51. |
#3
|
|||
|
|||
Hola:
Muchas gracias por tus comentarios. Cuando hablaba de bibliotecas externas, me refería a dll,s que tuvieran que acompañar al ejecutable en la instalación; pero evidentemente no me propongo reinventar la rueda En la función que Seaone propone para comprimir en formato gzip utiliza zlib, y sería utilizando zlib o similar como pretendo realizar la descompresión. He encontrado esta interfaz de zlib para Delphi que incluye ZLibExGZ.pas, aunque aún no he tenido tiempo para probarlo, me parece que puede resolver mi problema. Un saludo.
__________________
Sonríe. Mañana puede ser peor. |
#4
|
||||
|
||||
Desde Delphi XE2 lo puedes hacer sin bibliotecas externas al ejecutable. Básicamente enlaza archivos .obj que pertenecen a la biblioteca ZLib.
Agrego: Supongo que no sería muy complicado adaptar las unidades System.Zip y System.ZLib de XE2 a Delphi 7. Última edición por Al González fecha: 09-05-2013 a las 21:41:54. |
#5
|
|||
|
|||
Muchas gracias, pero tal como decía al principio uso Delphi 7
__________________
Sonríe. Mañana puede ser peor. |
#6
|
||||
|
||||
Me quedé pensando en esta idea:
¿Creen que valdría la pena intentarlo? |
#7
|
||||
|
||||
Al González,
Cita:
Nelson. |
#8
|
||||
|
||||
Pues algo más para la agenda del bibliotecario, a ver qué logro conseguir...
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
descomprimir archivo | mjjj | Varios | 2 | 22-07-2008 18:06:34 |
Descomprimir archivo rar | Tal | API de Windows | 6 | 16-04-2008 02:26:54 |
descomprimir archivos | diniremix | Varios | 2 | 15-05-2006 19:35:46 |
codigo para descomprimir un archivo .zip | JAI_ME | Varios | 4 | 30-01-2006 18:37:08 |
libreria gzip.dll | locotenentul | Varios | 3 | 14-09-2005 19:23:02 |
|