Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Compresión/Descompresión De Archivos En Gambas

Compresión/Descompresión De Archivos En Gambas
Artículo
Responder citando    Descargar mensaje 
Mensaje Compresión/Descompresión De Archivos En Gambas 
 
Compresión
La clase Compress permite utilizar los algoritmos de compresión Bz2 y gz.
Requiere que estén instaladas las librerías las librerías "libz" y "libbz2" para poder utilizar ambos métodos o bien una de ellas para poder utilizar uno de los métodos

Definición
Dim Comprimir as new Compress


Propiedad type
Define el tipo de compresión a utilizar. Puede tener los siguientes valores
zlib ---> para crear archivos .gz
bzlib2 ---> para crear archivos bz2
Comprimir.type="zlib"


Propiedad Max/Min/Default
Define el nivel de compresión. Max para máximo, Min, para mínimo y default para el nivel por defecto para el tipo de compresión especificado por type. A mayor compresión menor velocidad.

Comprimir un archivo a otro archivo
Se utiliza el método file que tiene el siguiente formato:
file(origen,destino,nivel)
origen ---> path completo de archivo a comprimir
destino ---> path completo de archivo comprimido
nivel --->Nivel de compresión que puede valer Min, Max o default. Si no se especifica se usará default
.
Dim comprimir as new Compress

Comprimir.type="zlib"
Comprimir.file(user.home & "/aplicacion.log",user.home & "/aplicacion.log.gz",Comprimir.max)


Abrir un fichero comprimido para agregar datos
se utiliza el método open que tiene el siguiente formato:
open(archivo,nivel)
donde archivo es el archivo comprimido y nivel es el nivel de compresión a utilizar.
Una vez abierto se utiliza como cualquier otro stream.
Dim Comprimir as new Compress

Comprimir.type="zlib"
Comprimir.open(user.home & "/aplicacion.log.gz",Comprimir.max)
print #Comprimir, "nuevo dato a agregar al archivo"
print #Comprimir, "nuevo dato a agregar al archivo"
print #Comprimir, "nuevo dato a agregar al archivo"
print #Comprimir, "nuevo dato a agregar al archivo"
close #Comprimir


Comprimir un string en memoria
Para ello está el método string que tiene el siguiente formato:
StringComprimido=string(StringOriginal,nivel,mayor)
StringOriginal ---> string a comprimir
nivel ---> nivel de compresión a utilizar
Mayor --> es un valor booleano cuyo sentido es
   FALSE ----> Se comprime solo si el resultado comprimido es menor que el original
   TRUE ----> Siempre comprime aunque el resultado obtenido sea igual o mayor que el original.

Dim Comprimir as new compress, Cadena as string

Comprimir.type="zlib"
Cadena=Comprimir.string(textbox.text,Comprimir.max,false)


Descompresión
Utiliza la clase uncompress.

Requiere que estén instaladas las librerías las librerías "libz" y "libbz2" para poder utilizar ambos métodos o bien una de ellas para poder utilizar uno de los métodos

Propiedad type
Define el tipo de compresión a utilizar. Puede tener los siguientes valores
zlib ---> para crear archivos .gz
bzlib2 ---> para crear archivos bz2
Desomprimir.type="zlib"


Descomprimir un archivo
Se utiliza el método file que tiene el siguiente formato:
file(origen,destino)
origen ---> path completo de archivo a comprimir
destino ---> path completo de archivo comprimido
linenumbers=false].
Dim Descomprimir as new unCompress

Descomprimir.file(user.home & "/aplicacion.log.gz",user.home & "/aplicacion.log"


Leer el contenido de un archivo comprimido
se utiliza el método open que tiene el siguiente formato:
open(archivo,nivel)
donde archivo es el archivo comprimido y nivel es el nivel de compresión a utilizar.
Una vez abierto se utiliza como cualquier otro stream.
Dim Descomprimir as new Uncompress, Cadena as string

Descomprimir.type="zlib"
Descomprimir.open(user.home & "/aplicacion.log.gz")
Line Input #Descomprimir, "Dato leído",Cadena
...
close #Descomprimir


Descomprimir en memoria una string
Para ello está el método string que tiene el siguiente formato:
StringSinComprimir=string(StringComprimido)

Dim descomprimir as new uncompress, Cadena as string

Cadena = ... 'valor de un string comprimido
Descomprimir.type="zlib"
textbox.text=Descomprimir.string(cadena)




 
última edición por soplo el Viernes, 20 Noviembre 2009, 22:57; editado 1 vez 
soplo - Ver perfil del usuario Enviar mensaje privado  
soplo [ Lunes, 21 Septiembre 2009, 20:31 ]
 


Compresión/Descompresión De Archivos En Gambas
Comentarios
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron