الأداة المساعدة للأغراض العامة أو المكتبة لتجميع/إزالة تجميع ملفات البيانات الثنائية؟

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

سؤال

لدي العديد من تنسيقات الملفات الثنائية التي أحتاج إلى تفريغها إلى نوع من تنسيق النص ، وتحريرها ثم إعادة الترجمة (ربما إلى نسخة مختلفة قليلاً من التنسيق الثنائي). بالطبع يمكنني كتابة مجموعة من رمز الأداة المساعدة في C/C ++ للقيام بهذا النوع من الأشياء ، وربما الاستفادة من مكتبة لجانب النص من الأشياء (XML أو JSON أو أي شيء آخر) ، ولكن هذا نمط مهمة يستمر في الظهور في عملي ويبدو لي أنه من المحتمل أن يكون هناك بالفعل نوع من الأدوات للأغراض العامة لهذا النوع من الوظائف.

من الواضح أنه يجب أن تكون هناك طريقة لوصف تنسيقات الملفات الثنائية - مخطط أو بعضها - هذا سيحتاج إلى دعم جميع أنواع البيانات الواضحة (الأوتار ، الباحثين عن الأحجام المختلفة ، والملحقة ، وما إلى ذلك ، ستكون العوامات لطيفة أيضًا) ، وأشياء مثل حقول العد وحقول الطول والحشو/المحاذاة ، إلخ ، للتعامل مع جميع الأشياء النموذجية التي تجدها في ملف البيانات. سيكون من المفيد أيضًا الحصول على دعم endianness ، لأن الملف الثنائي قد يكون له endianness مختلفة عن النظام الأساسي الذي نعمل عليه.

سأكون مندهشًا جدًا إذا لم يكن هناك شيء من هذا القبيل بالفعل ، لكن لم يكن لدي حظ حتى الآن عبر Google (كيف يمكنك حتى وصف هذه الأداة أو المكتبة بإيجاز؟). أقرب شيء إلى هذا ، كنت أتذكر رؤيته هو أدوات برمجيات موارد Apple/مرافق Decompiler مرة أخرى في أيام Mac OS "الكلاسيكية". استخدمت هذه بناء جملة تشبه C ، مع تعريفات قالب الموارد في ملفات الرأس لوصف تنسيقات الموارد الثنائية المختلفة ، ويمكنك تجميعها/فك تشكيلها بين بناء جملة المصدر الشبيه بـ C والموارد الثنائية.

هل كانت مفيدة؟

المحلول

binx, ، يبدو أن لغة وصف XML الثنائية ، بالإضافة إلى المكتبة المقابلة ، تناسب هدفك.

كما قد يكون من المهم الفصل 24. عملي: تحليل الملفات الثنائية التابع العملي الشائع كتاب ، والذي يوضح كيفية كتابة مكتبة لتحليل علامات ID3 في ملفات MP3 (الثنائية) في 150 سطر رمز LISP. *

* في الوقت الحاضر ، ربما لن أستخدم Lisp ، ولكن لغة وظيفية أكثر حداثة مثل clojure. يرى قراءة البيانات الثنائية في clojure على سبيل المثال.

ملاحظة binary data library أو binary data file library هي كلمات رئيسية جيدة لجوجل.

نصائح أخرى

"Synalyzeit" في متجر تطبيقات MAC قد يستحق نظرة ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top