J'avais installé Hachoir 0.5 pour modifier une valeur dans un fichier jpeg. Bon finalement je l'avais pas fait car je crois que c'était pas possible avec cette version.
Non, j'ai tardé très longtemps pour développer la partie édition. En fait, nous avons d'abord terminé la partie "lecture". Ensuite, j'ai réfléchi très fort pour trouver un algo potable qui fonctionnerait avec Hachoir. Les contraintes sont assez lourdes : il faut pouvoir éditer un fichier qui est chargé partiellement en mémoire... J'avais tenté une première implémentation il y a quelques mois, mais elle était loin d'être concluante.
Pour l'édition d'un fichier dans Hachoir 0.6, seules les modifications sont stockées : nouvelles valeurs, champs ajoutés et champs supprimés. La lecture d'un fichier est donc plus "lente" (bon, ça reste du O(1), sauf pour la lecture de l'adresse qui est en O(n) <= à vérifier tout ça), mais par contre c'est plus flexible et plus rapide finalement à mon avis. L'empreinte mémoire est assez faible... ce qui déjà rend l'édition de gros fichier (1 Go ou plus) possible... et permettra à court terme d'implémenter un historique pour permettre d'annuler des modifications (comme l'historique Gimp).
Autre idée que j'ai eu récement : implémenter un hachoir-diff qui va comparer deux fichiers et noter les champs ajoutés / supprimés / édités. Il faudrait que je trouve un algo de comparaison de fichiers binaires.
[^] # Re: Intéréssant
Posté par Victor STINNER (site web personnel) . En réponse à la dépêche Hachoir version 0.6. Évalué à 3.
Non, j'ai tardé très longtemps pour développer la partie édition. En fait, nous avons d'abord terminé la partie "lecture". Ensuite, j'ai réfléchi très fort pour trouver un algo potable qui fonctionnerait avec Hachoir. Les contraintes sont assez lourdes : il faut pouvoir éditer un fichier qui est chargé partiellement en mémoire... J'avais tenté une première implémentation il y a quelques mois, mais elle était loin d'être concluante.
Pour l'édition d'un fichier dans Hachoir 0.6, seules les modifications sont stockées : nouvelles valeurs, champs ajoutés et champs supprimés. La lecture d'un fichier est donc plus "lente" (bon, ça reste du O(1), sauf pour la lecture de l'adresse qui est en O(n) <= à vérifier tout ça), mais par contre c'est plus flexible et plus rapide finalement à mon avis. L'empreinte mémoire est assez faible... ce qui déjà rend l'édition de gros fichier (1 Go ou plus) possible... et permettra à court terme d'implémenter un historique pour permettre d'annuler des modifications (comme l'historique Gimp).
Autre idée que j'ai eu récement : implémenter un hachoir-diff qui va comparer deux fichiers et noter les champs ajoutés / supprimés / édités. Il faudrait que je trouve un algo de comparaison de fichiers binaires.
Haypo