URL: https://linuxfr.org/users/vstinner/journaux/hachoir-02-en-pr%C3%A9paration Title: Hachoir 0.2 en préparation Authors: Victor STINNER Date: 2006年05月05日T01:09:47+02:00 Tags: Score: 0 Rappel : Hachoir est une boîte à outil Python permettant de manipuler des fichiers binaires. Il permet par exemple de les visualiser d'un manière très fine ou d'en extraire facilement des informations. Après avoir bien ciblé les défauts du 1er prototype (version 0.1), j'ai décidé de recoder Hachoir depuis zéro. Les principaux changements sont : * Séparation du projet en une bibliothèque (libhachoir) et plusieurs interfaces utilisateurs (curses et sortie texte brut) * Un parseur est maintenant 100% "fainéant" : la taille d'un champ, le nombre de champs, la valeur ou la description d'un champ sont lus/crées uniquement à la demande * Ce mécanisme "fainéant" rend Hachoir beaucoup plus rapide et plus économe en mémoire * Nouvel outil : extracteur de méta-données * Réécriture de l'API : noms mieux choisis pour les classes et fonctions, vraiment orienté objet (ex: une liste de champ est un champ) * La syntaxe des parseurs est plus concise et claire * Système d'évènement : il est possible de surveiller de nombreux évènements avec une porté locale ou globale * Les tailles et adresses sont uniquement exprimées en bits et non plus en octets, et l'adresse d'un champ est relative à son parent * API plus agréable pour accéder aux informations d'un champ et explorer l'arbre des champs (ex: "/header/width" ou "../size") * Écriture d'une documentation et de tests unitaires * Nouveau parseur : document Microsoft Office (uniquement la première couche, objet OLE). La version 0.1 a gagné des parseurs de flux réseaux (tcpdump) et de fichier Python compilé (.pyc) Le projet est maintenant hébergé sur python-hosting.com pour être plus indépendent. Trac et SVN sont donc au rendez-vous. Pour tester (partie "Download and test!") : [http://hachoir.python-hosting.com/wiki/HachoirYield](http://hachoir.python-hosting.com/wiki/HachoirYield) Commandes : * ./hachoir.py fichier * ./hachoir.py --max-depth=n fichier * ./hachoir.py --metadata fichier * ./hachoir.py --export=xml fichier Pour ceux qui ne connaissent pas encore Hachoir (ou qui sont allergiques au mode texte) : testez la version 0.1 qui a une interface Gtk2 plus sexy. Liens : * [http://linuxfr.org/2005/12/29/20131.html](http://linuxfr.org/2005/12/29/20131.html) (sortie de la version 0.1) * [http://pyconstruct.wikispaces.com/](http://pyconstruct.wikispaces.com/) (pyConstruct, projet très similaire au Hachoir qui supporte la génération de nouveau fichier) Reste à faire avant la sortie de la 0.2 finale : correction de bugs, portage des anciens parseurs, écriture d'une interface Gtk2. Et si j'ai la motivation : supporter la modification d'un fichier (marche partiellement). N'hésitez pas à me contacer pour toute question, bug ou commentaire : [http://www.haypocalc.com/wiki/Victor_Stinner](http://www.haypocalc.com/wiki/Victor_Stinner) Haypo

AltStyle によって変換されたページ (->オリジナル) /