utilitaire à usage général ou à la bibliothèque pour la compilation / décompilation fichiers de données binaires?

StackOverflow https://stackoverflow.com/questions/2146192

Question

J'ai différents formats de fichiers binaires que je dois jeter à une sorte de format de texte, modifier et recompiler (peut-être à une version légèrement différente du format binaire). Bien sûr, je pourrais écrire un tas de code utilitaire en C / C ++ pour faire ce genre de chose, et peut-être tirer parti d'une bibliothèque pour le côté texte des choses (XML ou JSON ou autre), mais c'est un modèle de tâche qui revient sans cesse dans mon travail et il me semble qu'il devrait probablement déjà exister une sorte d'outil d'usage général pour ce genre de travail.

Il est évident qu'il y aurait besoin d'être une façon de décrire les formats de fichiers binaires - un schéma ou quelque - cela devrait soutenir tous les types de données évidentes (chaînes, ints de différentes tailles, Bools, etc, flotteurs serait bien trop), et des choses comme les champs de comptage, les champs de longueur, rembourrage / alignement, etc, pour gérer tous les trucs typiques que vous trouvez dans un fichier de données. Il serait également utile d'avoir un soutien boutisme, comme le fichier binaire peut avoir un autre boutisme que la plate-forme que nous sommes en cours d'exécution sur.

Je serais très surpris si quelque chose comme cela n'existe pas encore, mais je n'ai pas eu de chance jusqu'à présent par Google (comment voulez-vous décrire même un tel utilitaire ou d'une bibliothèque succincte?). La chose la plus proche de ce que je me souviens avoir vu était compilateur de ressources d'Apple / les services publics de décompilation à l'époque de « Classic » Mac OS. Ceux-ci ont utilisé une syntaxe de type C, avec des définitions de modèle de ressources dans les fichiers d'en-tête pour décrire les formats des différentes ressources binaires, et vous pourriez compilé / décompiler entre cette syntaxe source de type C et les ressources binaires.

Était-ce utile?

La solution

Binx , la description XML binaire langue, plus la bibliothèque correspondante, semblent correspondre votre but.

De plus d'intérêt pourrait être Chapitre 24. Pratique: analyse des fichiers binaires de pratique livre Common Lisp, qui montre comment écrire une bibliothèque pour l'analyse syntaxique des balises ID3 dans (binaire ) fichiers MP3 150 lignes de code Lisp. *

* de nos jours, je ne serais probablement pas utiliser Lisp, mais un langage fonctionnel plus moderne comme Clojure . voir Lecture des données binaires dans Clojure un exemple.

P.S. binary data library ou binary data file library sont de bons mots-clés pour Google.

Autres conseils

"SynalyzeIt" dans le Mac App Store est peut-être le coup d'oeil ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top