# مهندسی نرم افزار > مباحث مرتبط با مهندسی نرم‌افزار > مهندسی مجدد و معکوس > سوال: خواندن فایلهای bdc babylon

## Mrs.Net

میخوام از فایلهای دیکشنری babylon که فرمت bdc دارند تو برنامه ام استفاده کنم
یکی میگفت با zlib فشرده شده
چطور میتونم این فایل بخونم یا decompress کنم

----------


## Mrs.Net

بنظرم راحت تر از اینها باشه
یه کمک یا اشاره مفید

----------


## ilius.gnu

> بنظرم راحت تر از اینها باشه
> یه کمک یا اشاره مفید


من مدت‌ها روی فرمت bgl کار کردم و از کدهای موجود (که با مهندسی معکوس بدست اومده بود) استفاده کردم و خودم هم کلی مهندسی معکوس انجام دادم تا در نهایت تونستم سه کانورتور درست کنم یه پشتیبانی نسبتا کاملی از bgl داشته باشه (البته فقط برای خوندن از bgl) اسم این ابزار PyGlossary هست
http://sourceforge.net/projects/pyglossary/files/
برای لینوکس نوشته شده ولی توی احتمالا ویندوز و مک هم میشه اجراش کرد (با پایتون نوشته شده و غیر از رابط گرافیکی PyGTK رابط Tkinter و خط فرمان هم داره) البته باید قبلش مفسر پایتون (۲٫۵ یا ۲٫۶) نصب بشه.

حالا باید بگم که فرمت bgl فرمت خیلی خیلی پیچیده و مزخرفی بود!! انگار عمداً طوری پیچوندن که نشه به محتواش پی برد. و هنوز هم بعد از حدود دو سال کار روی bgl ، نمی‌تونم ادعا کنم ابزاری که درست کردم پشتیبانی ۱۰۰ درصد کاملی از bgl داره!!

اما در مورد bdc . چیزی که مشخصه اینکه bdc بر خلاف bgl از فشرده‌سازی استفاده نمی‌کنه. یعنی دیتاهای داخل bgl با فرمت gzip فشرده شده، اما bdc با توجه به حجم فایل مشخصه که برای سرعت بیشتر، فشرده سازی نداره و از اونجایی که این فایل‌ها فایل‌های موقت babylon هست (bgl بعد از نصب به bdc تبدیل میشه و توی پوشه نصب/تنظیمات babylon قرار می‌گیره) منطقی هم به نظر می‌رسه.
و میشه حدس زد که ساختار bdc شباهت‌هایی به ساختار bgl داشته باشه (غیر از فشرده‌سازی) ولی تلاش‌های من تا به حال نتونسته شباهتی رو پیدا کنه! و هنوز موفق نشدم ساختارش رو کشف کنم.
اگه کسی روی مهندسی معکوس کار کرده، و علاقمند هست روی bdc کار کنه، می‌تونیم همفکری کنیم مثلاً من می‌ٰتونم ساختار bgl رو براش توصیف کنم شاید به کارش کمک کنه.

----------

