پہلی بار شریکِ محفل ہو رہا ہوں۔ امید ہے آپ حضرات برا نہیں منائیں گے۔
اس تھریڈ میں جاری گفتگو کو پڑھ کر مجھے تجسس ہوا تو اِن پیج کے فائل فارمیٹ پر تھوڑی سی تحقیق کر ڈالی۔ اس کے نتائج یہاں بیان کر رہا ہوں تاکہ مستقبل میں کام آ سکیں۔ (درج ذیل تمام باتیں اِن پیج ۳ سے سابقہ ورژن کے لیے ہیں۔)
لینکس میں اِن پیج کی فائل کی properties دیکھی جائیں تو وہ اسے ole compound document storage کی حیثیت سے پہچانتا ہے۔ یہ مائکروسوفٹ کی تیار کردہ ایک ٹیکنالوجی ہے، اور خود مائکروسوفٹ نے اس ٹیکنالوجی کی جو implementation کر رکھی ہے، اُسے compound storage/file کہا جاتا ہے۔ (مائکروسوفٹ آفس میں اس فارمیٹ کا کثرت سے استعمال ہوتا ہے۔) اوپن آفس والوں نے (اللہ ان کا بھلا کرے) اس کمپاؤنڈ ڈاکیومنٹ فارمیٹ کی ریورس انجینیئرنگ پہلے ہی کر رکھی ہے، جس کی تفصیل یہاں (۱) دیکھی جا سکتی ہے۔ میں نے ایک اِن پیج فائل کو hex editor میں کھول کر اس کا header دیکھا تو اس بات کی تصدیق ہو گئی کہ اِن پیج کا فائل فارمیٹ یہی کمپاؤنڈ ڈاکیومنٹ ہے۔
پیچھے کہیں شارق بھائی کے کنورٹر کو سی شارپ پر پورٹ کرنے کا ذکر کیا گیا تھا۔ سی شارپ میں میرا تجربہ نہ ہونے کے برابر ہے، اور وِنڈوز پروگرامنگ میں بھی مَیں کوئی خاص مہارت نہیں رکھتا، لیکن msdn پر موجود ان مثالوں (۲) کو دیکھتے ہوئے میرا قوی قیاس ہے کہ سی پلس پلس کی طرح سی شارپ کے لیے بھی ایسی کلاسز موجود ہوں گی جن کی مدد سے کسی کمپاؤنڈ فائل کو پڑھا جا سکے اور اس کی streams تک رسائی ہو سکے۔ اِن پیج اپنی فائل کے متن کو ایکسپورٹ کرتے ہوئے جو فائل بناتا ہے، اس کے اندر وہی کیریکٹرز موجود ہوتے ہیں جو اِن پیج فائل کی کسی stream میں محفوظ ہوتے ہیں۔ (اس بات کی تصدیق بھی میں نے hex editor کے ذریعے کی تھی۔ اس کے علاوہ اس پوسٹ (۳) میں نبیل بھائی نے جو output فراہم کی ہے، اُس سے بھی یہی ظاہر ہوتا ہے۔) چنانچہ اگر کسی اِن پیج فائل کی تمام streams میں سے کیریکٹرز کشید کر کے شارق بھائی کے کنورٹر کو پاس کیے جائیں تو ہو سکتا ہے کہ کامیابی حاصل ہو۔ اصل صورتحال مزید پیچیدہ بھی ہو سکتی ہے -- مثلاً فریمز اور دیگر فارمیٹنگ آپشنز میں سے کیریکٹرز کی کشیدگی شاید اتنی آسان نہ ہو -- لیکن فی الحال مَیں صرف ایک آئیڈیا پیش کر رہا ہوں۔
(میری یہ پوسٹ اس تھریڈ کے اصل موضوع سے کچھ ہٹ کے ہی ہے، جس کے لیے معذرت۔ پوسٹ کاؤنٹ کم ہونے کی وجہ سے روابط بھی درست طریقے سے embed نہیں کر پا رہا، اس کے لیے بھی معذرت۔)
(۱) sc.openoffice.org/compdocfileformat.pdf
(۲) msdn.microsoft.com/en-us/library/aa380308%28vs.85%29.aspx
(۳) urduweb.org/mehfil/showpost.php?p=581220&postcount=58