Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1731 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Format zip, deflate : obligé d'avaler les RFC ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Format zip, deflate : obligé d'avaler les RFC ?

n°1153911
v10ware
Posté le 19-07-2005 à 17:04:12  profilanswer
 

Bonjour à tous,
 
J'ai pour mission de coder quelques classes C++ de compression/décompression zip, dans le plus total respect des normes impliquées (compatibilité avec les logiciels du marché, gestion de mot de passe...).
 
Après quelques recherches, je n'ai pas trouvé LA page web décrivant l'intégralité du format d'un fichier zip standard. Tout au plus suis-je tombé sur le RFC 1951 décrivant la compression deflate, ainsi que les RFC 1950 et 1952 des formats de compression zlib et gzip (où est la nuance ?). Comme je trouve tout cela assez imbuvable et que j'ai encore moins envie de zieuter les sources des librairies libres existantes pour me faire une idée du schéma d'un fichier zip, pourriez-vous m'indiquer une source d'information relativement complète ?
 
Mon but n'est pas de pomper du code source à droite à gauche, je veux juste avoir une vision globale du format zip et des algorithmes en jeu.
 
Merci d'avance :jap:

mood
Publicité
Posté le 19-07-2005 à 17:04:12  profilanswer
 

n°1153953
FlorentG
Unité de Masse
Posté le 19-07-2005 à 17:20:57  profilanswer
 

RFC [:spamafote] Mais c'est sûr qu'ils sont relous à lire :(

n°1154037
v10ware
Posté le 19-07-2005 à 18:56:06  profilanswer
 

Pitié :fouyaya:
 
Bon, alors, je regarde le RFC 1950 (zlib) ou le 1952 (gzip) ? Parceque j'ai pas bien saisi lequel (si il y en a un) correpond au format zip. Si au moins ceci était clair, j'aurais plus qu'à serrer les fesses pour comprendre ce que ça raconte.

n°1154268
v10ware
Posté le 20-07-2005 à 08:43:41  profilanswer
 

Il faudra que je réapprenne à suivre mon instinct plutôt que celui de google...
 
J'ai donc fini par trouver ce lien : http://www.pkware.com/company/stan [...] ppnote.txt
 
Souhaitez-moi bonne lecture :)

n°1154980
v10ware
Posté le 20-07-2005 à 16:17:27  profilanswer
 

Mes rercheches avancent http://altab.mesdiscussions.net/images/perso/1/dawa.gif
 
Vous vous en battez probablement les reins, mais pour tout ce qui concerne la partie (dé)compression de données zip pr la méthode deflate, j'ai trouvé LA page : http://www.gzip.org/zlib/feldspar.html
 
Si ça peut être utile à certains...
 
Me reste à penser mes belles classes pour les arbres de Huffman, la recherche rapide dans le dictionnaire... En faisant en sorte de ne pas tomber sur un algo propriétaire :/

n°1158367
el muchach​o
Comfortably Numb
Posté le 24-07-2005 à 17:11:59  profilanswer
 

Tu as une bonne raison de ne pas utiliser la librairie zlib ?

n°1161734
FlorentG
Unité de Masse
Posté le 27-07-2005 à 16:02:57  profilanswer
 

Citation :

'ai pour mission de coder quelques classes C++ de compression/décompression zip


 
Ca doit être un exo qui lui est demandé

n°1179216
v10ware
Posté le 18-08-2005 à 22:40:57  profilanswer
 

Oups, je devrais venir plus souvent, désolé de n'avoir pas répondu plus tôt.
 
Alors oui, je suis en stage et je suis chargé de pondre des classes pour le format ZIP. La boîte veut ses propres outils, moi j'exécute :o
 
J'ai pas mal avancé, mais ça coince : en utilisant la compression deflate avec codage de huffman statique, je produis des blocs deflate que les logiciels courants ne savent pas décompresser :/
 
Pour l'instant, je sais produire un fichier zip avec son en-tête, un bloc de données compressées via deflate avec huffman statique, et le central directory qui va bien à la fin.
 
d'après ce que j'ai pigé, le bloc doit commencer par 3 bits d'en-tête : bit 0 à 1 (il n'y a qu'un bloc dont il est forcément le dernier) et bits 1 à 1 et 2 à 0 (01 : compression huffman statique). Suite à ces bits, j'écris tous mes codes de Huffman à l'envers (j'inverse les poids des bits)
 
Ainsi, si mon premier code de Huffman est 01100111, je dois avoir dans mon premier octet (poids fort à gauche) : 00110011 et dans mon second octet 00000111 (en rouge le premier bit d'en-tête, en bleu les deux suivants, en vert mon code de Huffman inversé.
Si il y a un connaisseur, qu'il ait la gentillesse de me dire si j'ai faux :jap:


Message édité par v10ware le 18-08-2005 à 22:42:34
n°1179219
push
/dev/random
Posté le 18-08-2005 à 22:44:15  profilanswer
 

v10ware a écrit :

Alors oui, je suis en stage et je suis chargé de pondre des classes pour le format ZIP. La boîte veut ses propres outils, moi j'exécute :o


Soit ils t'ont donné ça pour t'occuper soit  [:totoz]  
 
C'est pour quel genre d'appli ?

n°1179223
v10ware
Posté le 18-08-2005 à 22:48:08  profilanswer
 

push a écrit :

Soit ils t'ont donné ça pour t'occuper soit  [:totoz]


En gros, ils développent des barres avec 2 caméras à poser au dessus d'un mur ou d'une vitrine. On projette sur le mur un bureau windows ou autre, et les caméras suivent le doigt, pour qu'il agisse comme une souris.
Le soft qui gère ça a besoin de stocker des fichiers de configuration ou je ne sais trop quoi, ils veulent pouvoir compresser et empaqueter le tout.


Message édité par v10ware le 18-08-2005 à 22:48:25
mood
Publicité
Posté le 18-08-2005 à 22:48:08  profilanswer
 

n°1179227
push
/dev/random
Posté le 18-08-2005 à 22:52:08  profilanswer
 

Mis à part le cas de matos embarqués hyper spécifique voir très exigant c'est hallucinant d'aller recoder un truc pareil  [:_ _taupe_ _]

n°1179230
v10ware
Posté le 18-08-2005 à 22:54:11  profilanswer
 

Je me contenterai d'un support partiel :o
Pas de compression/décompression dynamique, un seul bloc deflate par fichier, copie intégrale de chaque fichier en mémoire pour compression, peu d'optimisation pour la compression LZ77, pas de paramétrage...
Ca dégrossit pas mal mais il en reste [:dawa]

n°1179294
el muchach​o
Comfortably Numb
Posté le 19-08-2005 à 07:34:47  profilanswer
 

Citation :


Alors oui, je suis en stage et je suis chargé de pondre des classes pour le format ZIP. La boîte veut ses propres outils, moi j'exécute :o


 
A mon avis, tu as rien compris et tu dois utiliser zlib, quitte à encapsuler dans des classes. Vérifie avec ton chef. S'ils veulent redévelopper eux-même cette lib qui est utilisée partout depuis au moins 10 ans, c'est que tu as affaire à des crétins qui jettent leur argent par les fenêtres, vu que tu n'as pas l'air d'avoir de contraintes techniques particulières. Et toi tu perds ton temps. Ce n'est pas ça qui va leur donner le moindre avantage compétitif / concurrence, bien au contraire, quand le marketing voudra que ton code soit compatible avec les fichiers zippés actuels et qu'ils devront revoir ton code (à ce moment-là, ils switcheront à zlib).
M'étonne pas qu'ils prennent un stagiaire pour ça. C'est qui cette boite ?


Message édité par el muchacho le 19-08-2005 à 07:41:25
n°1179309
v10ware
Posté le 19-08-2005 à 08:25:21  profilanswer
 

el muchacho a écrit :

A mon avis, tu as rien compris et tu dois utiliser zlib...


Ton avis est de trop. Je sais très bien ce qui m'a été demandé et j'ai déjà discuté de l'utilisation des logiciels libres qui sont là pour ça, ce a quoi on m'a répondu "on veut posséder tout notre code source pour qu'il n'y ait aucun soucis". J'ai beau régulièrement revenir à la charge à propos de leur aveuglement, rien à faire.
 
Je n'ai pas mon mot à dire, on me demande de faire de la compression/décompression zip depuis zéro, c'est documenté et standard donc c'est faisable, donc ils veulent que je le fasse. Quitte à ce qu'ils réalisent plus tard leur stupidité, mais ce ne sera plus mon problème.
 
J'ai besoin de réponses sur des détails techniques, rien d'autre.

n°1179636
v10ware
Posté le 19-08-2005 à 14:47:02  profilanswer
 

Problème résolu. Je voulais bien écrire les bits dans l'ordre qu'il fallait mais ma classe d'écriture de bits dans des octets était buggée, tous les codes fixes (et donc qui ne sont pas à inverser) étaient inscrits un peu n'importe comment).
J'arrive enfin à créer un fichier zip avec un seul fichier dedans http://altab.mesdiscussions.net/images/perso/1/dawa.gif

n°1179888
push
/dev/random
Posté le 19-08-2005 à 19:18:58  profilanswer
 

Pourtant on peut pas dire que la license de la zlib soit très compliquée  [:mustang] http://www.zlib.net/zlib_license.html

n°1180002
el muchach​o
Comfortably Numb
Posté le 19-08-2005 à 23:13:09  profilanswer
 

v10ware a écrit :

Ton avis est de trop.  (bla bla bla)
 
J'ai besoin de réponses sur des détails techniques, rien d'autre.


 
Et moi j'aimerais savoir le nom de cette boîte dirigée par une équipe de crétins, histoire d'éviter de leur envoyer mon CV (quitte à ce que ce soit en mail privé).

n°1180154
v10ware
Posté le 20-08-2005 à 14:03:16  profilanswer
 

Fait :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Format zip, deflate : obligé d'avaler les RFC ?

 

Sujets relatifs
Forcer Format Champ Date/Heureconvertir des images bmp en bmx(format texture xbox)
ZLIB, un format bien mystérieux...Format InnoDB
format conditionnel de cellules Excel sous VBAexportation format pdf
marge et format d'une page d'impressionDisquette format+fdisk automatisée ?
Format de données dans access[c#][winform] MissingManifestResourceEx: probleme format de ressource?
Plus de sujets relatifs à : Format zip, deflate : obligé d'avaler les RFC ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR