Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





zziplib, zlib, zzlib, ¡¡¡ayuda!!!!

Iniciado por deadLock++, 09 de Mayo de 2003, 12:08:31 AM

« anterior - próximo »

deadLock++

                                Hola, estoy buscando una librería que me permita descomprimir a memoria archivos que estén dentro de un zip (como hacen muchísimos juegos).

El asunto es que probé con el zlib pero sólo permite compresión/descompresión de archivos simples, es decir que un archivo comprimido no puede contener en su interior mas de un archivo de datos.

Probé con el zziplib pero el mismo, si bien permite agrupar archivos en un zip, no permite descomprimir a memoria, o sea que sí o sí hay que mandarlo a un archivo.

Probé con el zzlib, pero no me fue posible compilar los fuentes y de la única distribución binaria el compilador no me toma el .lib como válido.

¿Que otra librería similar hay por ahí?

Básicamente requiero dos caracterísicas:
+ Mas de un archivo dentro del zip.
+ Descompresión de un archivo dentro del zip a memoria.

Gracias.                                

ShAq

                                En breve ZaelSiuS enviara un COTW con un programa con las
caracteristicas que pides, varios archivos y la carga de uno en
memoria.

saludos                                

Zaelsius

Pozí. EL problema de zlib es que está orientada a streams, es decir, no soporta ningun tipo fichero "pack", aunque la distribución de zlib tambien suele incluir los fuentes para manejar ficheros .gz.

En fin, a ver si termino de perfilar y documentar el COTW que ya me lo han pedido varios...dentro de una semana como mucho ya lo tendreis.

deadLock++

                                ¿Podrías adelantarme en que librería te basás?. Ahora estoy lidiando con la info-zip unzip32.dll .

Me gustó mucho el modo de uso de la zziplib debido a que maneja de modo transparente una carpeta con subdirs de un zip con programas dentro por lo tanto es lo mismo acceder:

c:docsrecursosfoto.bmp

que a:

c:docsrecursos.zip (que tiene dentro a foto.bmp)

Una cosa puede ser cambiada por la otra sin alterar para nada el programa. :ojo:

Esto no es así con la unzip32.dll

¡Pero la zziplib no la puedo hacer andar! ¿alguien pudo?                                

ethernet

Pensaba q zlib tenia funciones para acceder a .zip's :?

deadLock++

                                zip es simplemente la terminación del nombre de un archivo (como los wav) no indica de por sí que tipo de algoritmo de compresión lleva en su interior. El WinZip puede descomprimir varios formatos.

El zlib descomprime archivo comprimidos con el PKZip (de Pkware) y el gzip; es muy bueno pero es solamente compresor. Yo requiero un compresor/archivador o mejor dicho un descompresor/desarchivador.

En Unix se utiliza mucho el gzip/gunzip en conjunto con el tar que es un archivador, debido a que el gzip no archiva (como si hace el WinZip).

Es por esto que es común ver archivos archivados y comprimidos con el nombre loquesea.tar.gz                                

deadLock++

                                Finalmente pude hacer andar la zziplib que era la que mas me gustaba. El problema residía en la convención de llamada a las funciones de la DLL, que era una de las cosas que había probado primero pero había quedado enmascarada por un error aún mas tonto.

Muchas gracias a todos e igualmente espero ansioso el COTW.

Saludos.                                

ethernet


Zaelsius

                                Paciencia... :D , me baso en zlib, pero incluyo métodos para utilzar algoritmos proporcionados por el usuario. Sólo me falta implementar el log con el orden de carga de los ficheros...                                

Storm

                                En flipcode hay un COTD que trata sobre el tema, esta escrito por Javier Arevalo, uno de commandos 2, y usa la libreria zlib. http://www.flipcode.com/cgi-bin/msg.cgi?sh...orum=cotd&id=-1.
Animo ZaelSiuS, que estoy deseando ver tu codigo, seguro que tiene cosas interesantes  :D                                

ethernet

Parece ser q ese COTD no funciona del todo bien, hay situaciones en las q falla por lo q se ha comentado en ciertos canales de irc

saludos






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.