Este tiene unas lineas que estan codificadas en base64 y comprimidas en gz.
En gambas3, desde la version 3.2, tenemos herramientas para poder decodificar en base 64, ademas de tener el componente gb.compress, para la descomprimir qzip
En principio se podria hacer, os dejo aqui mi código:
Public Sub Form_Open()
Dim mensajeoriginal As String
Dim mensajedecodificado As String
Dim mensajedescomprimido As String
Dim descomprimirGZ As New Uncompress
Print "*****************Traduccion de .tmx linea decodificada base64 y comprimida ******************"
mensajeoriginal = "eJzt0rENgDAMRcFkE5ZIy7BMSgoKC6VEsoErrn/yd2+tdYCfOgo0wBtsBRqA54xpv4wguyv2rWR3rfriDbO7ovu2Ffuq/h8AAN9xAj4aDOc="
'descomprimo
mensajedecodificado = UnBase64$(mensajeoriginal)
descomprimirGZ.type = "zlib"
mensajedescomprimido = descomprimirGZ.String(mensajedecodificado)
'convertir....
'duda de como hacerlo.....
End
Dim mensajeoriginal As String
Dim mensajedecodificado As String
Dim mensajedescomprimido As String
Dim descomprimirGZ As New Uncompress
Print "*****************Traduccion de .tmx linea decodificada base64 y comprimida ******************"
mensajeoriginal = "eJzt0rENgDAMRcFkE5ZIy7BMSgoKC6VEsoErrn/yd2+tdYCfOgo0wBtsBRqA54xpv4wguyv2rWR3rfriDbO7ovu2Ffuq/h8AAN9xAj4aDOc="
'descomprimo
mensajedecodificado = UnBase64$(mensajeoriginal)
descomprimirGZ.type = "zlib"
mensajedescomprimido = descomprimirGZ.String(mensajedecodificado)
'convertir....
'duda de como hacerlo.....
End
Nota: Como lo que estoy interesado en en "traducir" la linea comprimida, la he copiado en el código de un fichero creado por Tiled Map Editor.
Lo que no se es como traducir la parte de "convertir" ...
Este es el código que quiero traducir de python:
# Mapas
# ---------------------------------------------------------------------
def decodificar(cadena):
# Decodificar.
cadena = base64.decodestring(cadena)
# Descomprimir.
copmressed_stream = StringIO.StringIO(cadena)
gzipper = gzip.GzipFile(fileobj=copmressed_stream)
cadena = gzipper.read()
# Convertir.
salida = []
for idx in xrange(0, len(cadena), 4):
val = ord(str(cadena[idx])) | (ord(str(cadena[idx + 1])) << 8) | \
(ord(str(cadena[idx + 2])) << 16) | (ord(str(cadena[idx + 3])) << 24)
salida.append(val)
return salida
# ---------------------------------------------------------------------
def decodificar(cadena):
# Decodificar.
cadena = base64.decodestring(cadena)
# Descomprimir.
copmressed_stream = StringIO.StringIO(cadena)
gzipper = gzip.GzipFile(fileobj=copmressed_stream)
cadena = gzipper.read()
# Convertir.
salida = []
for idx in xrange(0, len(cadena), 4):
val = ord(str(cadena[idx])) | (ord(str(cadena[idx + 1])) << 8) | \
(ord(str(cadena[idx + 2])) << 16) | (ord(str(cadena[idx + 3])) << 24)
salida.append(val)
return salida
Codigo original de python en: http://razonartificial.com/2010/06/...ndo-el-tileset/
A ver si me podeis echar una mano...
Saludos