pode-se manipular arquivos .zip sem dll?

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

pode-se manipular arquivos .zip sem dll?

Mensagem por saim em Ter 28 Fev 2012, 22:10

Essa pergunta é meio direcionada ao Ninja8086, que fez os scripts de ler tags de arquivos .mp3. Só que mandar uma MP pro cara tiraria a chance de muita gente de tentar se aventurar nessa questão.
A pergunta é bem simples, eu quero criar um programa que mostra as imagens .bmp ou .jpg de um arquivo .zip e, pra isso, preciso acessar o arquivo. Como acessar, listar e, por fim, exibir essas imagens na tela?

Sei que usar a GMLibrary me permite acessar arquivos .zip, mas se for possível, eu gostaria de fazer isso sem usar nenhuma extensão.

Ninja8086, juro que estou tentando entender suas aulas de manipulação binária e como você chegou naqueles scripts, mas isso é coisa de doido, cara! Quer dizer, trabalhar com binários, até vai, mas daí a usar isso da forma que você usou... wooosh!
porque eu quero isso:
A muitos e muitos anos, havia um site em que eu baixava histórias em quadrinhos de toda natureza. Essas histórias eram escaneadas e as imagens, compactadas. A extensão era, então, renomeada para .cbz. Havia um programa feito pra ler esses arquivos, que era bom, mas depois sofreu "melhorias" e ficou ruim. Eu apaguei o programa bom e fiquei com o ruim. Depois, ler ficou muito trabalhoso e eu parei de ler, inutilizando boa parte do meu HD (porque eu jamais apagarei esses arquivos). Agora eu quero desenvolver meu próprio programa, com opção de alteração de zoom, mudança rápida de páginas, leitura via mouse e via teclado, enfim, o que me der na telha.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: pode-se manipular arquivos .zip sem dll?

Mensagem por PedroX em Ter 28 Fev 2012, 22:34

Olha a estrutura do arquivo:
http://www.ta7.de/txt/computer/computer016.htm

Lembra que o Ninja8086 colocou a do MP3?
É tipo isso.

O problema é que o arquivo ZIP tem um algoritmo que o compactou.
Existe mais de um, ou seja, será meio dificil fazer algo que extraia qualquer zip.
E também, esses algoritmos são complicados, na maioria das vezes.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: pode-se manipular arquivos .zip sem dll?

Mensagem por Klior em Qua 29 Fev 2012, 08:11

Fazer o algoritmo no game maker não será nada fácil..
Mais porque não usar uma dll para isso que quer fazer?
Obs.: Gostei da ideia, costumo ler bastante quadrinhos dos x-men nesse formato rsrs

Klior

Número de Mensagens : 426
Idade : 25
Data de inscrição : 07/03/2010
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: pode-se manipular arquivos .zip sem dll?

Mensagem por saim em Qua 29 Fev 2012, 08:55

Pedrø escreveu:Lembra que o Ninja8086 colocou a do MP3?
É tipo isso.
Lembrar, eu lembro. Conseguir fazer o que ele fez é que são elas.

Klior escreveu:Mais porque não usar uma dll para isso que quer fazer?
Bloqueio mental. O mesmo motivo pelo qual eu não aprendi, até hoje, a mexer com 3D ou fazer jogos online: sempre que começo a estudar como faz, me distraio com outra coisa e deixo pra "depois". Eu não sei usar uma dll. Sei que é simples, só nunca fiz.
Klior escreveu:Gostei da ideia, costumo ler bastante quadrinhos dos x-men nesse formato rsrs
Olha, se fizer o programa, me passe uma cópia, hein? Não acho que vou chegar a finalizar esse projeto...

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: pode-se manipular arquivos .zip sem dll?

Mensagem por Klior em Qua 29 Fev 2012, 11:47

saim escreveu:A muitos e muitos anos, havia um site em que eu baixava histórias em quadrinhos de toda natureza. Essas histórias eram escaneadas e as imagens, compactadas. A extensão era, então, renomeada para .cbz. Havia um programa feito pra ler esses arquivos, que era bom, mas depois sofreu "melhorias" e ficou ruim. Eu apaguei o programa bom e fiquei com o ruim. Depois, ler ficou muito trabalhoso e eu parei de ler, inutilizando boa parte do meu HD (porque eu jamais apagarei esses arquivos). Agora eu quero desenvolver meu próprio programa, com opção de alteração de zoom, mudança rápida de páginas, leitura via mouse e via teclado, enfim, o que me der na telha.

Sobre o programa para ler não sei qual você usava, eu uso o CDisplay e não vejo dificuldade nele, acho ele muito bom para ler.
Sei que fazendo do seu jeito ficará bem melhor, do jeito que você quer..
Mais se tiver afim de falar sobre essas dificuldades talvez possa te ajudar também.

Klior

Número de Mensagens : 426
Idade : 25
Data de inscrição : 07/03/2010
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: pode-se manipular arquivos .zip sem dll?

Mensagem por Kabeção em Qua 29 Fev 2012, 14:14

Não é nada recomendado não usar as libs comuns/principais de zip.
Elas tem anos de desenvolvimento, documentação, tratamento de erros e otimização.
Refazer isso em GML não seria uma boa ideia.

Se quer realmente fazer isso você tem que interpretar a estrutura binária do zip usando as funções file_bin e procurar por especificações como o link que o Pedro passou.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: pode-se manipular arquivos .zip sem dll?

Mensagem por GameMakerTutoriais em Qua 29 Fev 2012, 15:24

Kabeção escreveu:Não é nada recomendado não usar as libs comuns/principais de zip.
Elas tem anos de desenvolvimento, documentação, tratamento de erros e otimização.
Refazer isso em GML não seria uma boa ideia.

Se quer realmente fazer isso você tem que interpretar a estrutura binária do zip usando as funções file_bin e procurar por especificações como o link que o Pedro passou.

É isso aí que o Kabeção disse. Além disso, uma coisa assim no GM poderia ser bem volúvel porque qualquer erro vai gerar o arquivo todo "estragado". Eu nunca peguei o Zip pra estudar... Só dei uma "passada de olho" por alto num que chama RLE e um que chama LZW e são bem complicados mesmo.

Mas pelo menos na parte onde eles se parecem é na retirada de informações repetidas do arquivo (com perda ou sem perda de informação), onde eles colocam cada trecho binário que se repete, numa espécie de "dicionário".

Quando o arquivo é descompactado ele vai "pegando" os trechos dentro desse dicionário e voltando pro lugar original. Se você preencher um arquivo de 1 giga com 0s e compactá-lo ele deve cair pra menos de 1 mega. Esse é o motivo, porque a grosso modo, "no dicionário ele só tem um 0, e quantas vezes ele se repete".

Em todo caso, isso não impede a gente de pelo menos tentar dar uma olhada, certo?
Acho que a gente vai ter que dar uma pesquisada nisso em comunidade open, normalmente tem muita coisa boa.

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: pode-se manipular arquivos .zip sem dll?

Mensagem por saim em Qua 29 Fev 2012, 15:52

Caramba... Não sabia que estava mexendo num vespeiro tão grande. Achei que seria algo "simples" como pegar as tags de mp3 (por isso direcionei a pergunta ao Ninja8086).
Olha, esquece. Parece que fazer isso é reinventar a roda. Não é minha intenção.
Vou dar um jeito de implementar a dll do Jyraia e me concentrar no desenvolvimento do programa de visualização em si. Se sair qualquer coisa, eu aviso.

Ninja8086, parece que aticei um pouco de curiosidade sua. Olha, se quiser ir adiante, faça por conta e risco. Claro que, quando estiver tudo prontinho e funcionando, eu vou querer ver, mas não faça isso por mim.

Valeu, moçada!

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: pode-se manipular arquivos .zip sem dll?

Mensagem por Klior em Qua 29 Fev 2012, 18:37

Não meche com o Ninja8086 não kkkkk
O cara é um 'ninja', se amanha aparecer com um descompactador/compactador de zip em gml puro não vai ser nenhuma novidade rsrsrs

Brincadeiras a parte, boa sorte com o projeto saim

Klior

Número de Mensagens : 426
Idade : 25
Data de inscrição : 07/03/2010
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: pode-se manipular arquivos .zip sem dll?

Mensagem por GameMakerTutoriais em Qui 01 Mar 2012, 10:24

Que nada! Sou só curioso mesmo. Very Happy Francamente, eu não conseguiria fazer isso em GML... Eu baixei mais de 20 sources em C++ e Java a maioria usam libs também, e os que não usam, de uma forma ou outra recorrem à dll's... Baixei o site da PkWare inteiro, apesar de ter muita coisa, é muito complicado.

Só uma parte das especificações do Zip já impressiona:
http://www.pkware.com/documents/casestudies/APPNOTE.TXT

O formato não é novo, ele vai ganhando alterações ao longo dos anos e no final vira esse monstertruck de coisas.

Bom, mas jeito de extrair ou compactar sem dll, tem sim. Isso é mais que garantido. Nem que você crie um script em VBS em tempo real e extraia o arquivo Zip usando um "execute_program" com o script... Vou tentar alguma coisa aqui, se eu conseguir eu posto. Valeu!


GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: pode-se manipular arquivos .zip sem dll?

Mensagem por saim em Qui 01 Mar 2012, 11:46

Ok, vou manter o tópico aberto, então.
Ou devo trancar o tópico e pedir pra você postar essa "alguma coisa" em engines? Afinal, nem que seja só por curiosidade, isso vai impressionar muita gente!

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: pode-se manipular arquivos .zip sem dll?

Mensagem por GameMakerTutoriais em Qui 01 Mar 2012, 18:48

Que nada, por VBScript isso é simples. O legal de usar VB é a quantidade de coisas que dá pra fazer. Até mandar e-mails por exemplo (coisa que ia exigir uma dll), teria jeito via puro e simples VB. Eu fiz um exemplo aqui, ficou um pouco tosco, mas funciona legal:

http://gmbr.forumeiros.com/t21251-script-compactar-ou-extrair-zips-sem-dll-s#160406

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: pode-se manipular arquivos .zip sem dll?

Mensagem por Conteúdo patrocinado Hoje à(s) 20:25


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum