একটি ফাইল ফর্ম্যাট স্পেসিফিকেশন ডকুমেন্ট কিভাবে [বন্ধ]


12

একটি প্রকল্পের জন্য, আমাকে কিছু পুরানো গেম এবং সম্পর্কিত সফ্টওয়্যার - কনফিগারেশন ফাইল, সংরক্ষণ, সংস্থান সংরক্ষণাগার ইত্যাদি থেকে বিভিন্ন ধরণের ফাইলের সাথে কাজ করা উচিত। এগুলির বেশিরভাগটি এখনও নথিভুক্ত নয়, বা তাদের সাথে কাজ করার জন্য কোনও সরঞ্জাম উপস্থিত নেই, সুতরাং আমাকে অবশ্যই ফর্ম্যাটগুলি রিভার্স-ইঞ্জিনিয়ার এবং সেগুলি পরিচালনা করার জন্য আমার নিজস্ব লাইব্রেরি তৈরি করতে হবে।

যদিও আমি মনে করি না এটির বেশিরভাগের জন্য প্রচুর চাহিদা রয়েছে, তবে আমি আমার প্রচেষ্টার ফলাফল প্রকাশের ইচ্ছা করি। ফাইল ফর্ম্যাটের ডকুমেন্টিংয়ের জন্য কি কোনও গৃহীত মান আছে? চারপাশে তাকালে, বেশ কয়েকটি শৈলীর ব্যবহার রয়েছে: কিছু .ZIP ফাইল ফর্ম্যাট স্পেসিফিকেশন এর মতো খুব শব্দযুক্ত; অন্যরা, যেমন এক্সএন্ট্যাক্সউইকির মতো, তারা আরও বেশি পরিশ্রুত - তাদের মধ্যে কিছু পড়তে আমার অসুবিধা হয়; প্লেস্টেশন 2 মেমরি কার্ড ফাইল সিস্টেমের এই বিবরণটি যা আমি ব্যক্তিগতভাবে সবচেয়ে বেশি পছন্দ করি তা হ'ল অফসেট এবং এর সাথে বিশদ বর্ণনামূলক পাঠ্য এবং কয়েকটি 'মেমরি মানচিত্র' উভয়ই অন্তর্ভুক্ত - এটি আমার ব্যবহারের ক্ষেত্রেও খুব ঘনিষ্ঠভাবে মেলে। এটি বিভিন্ন ফর্ম্যাটের জন্য কিছুটা পৃথক হবে, তবে মনে হচ্ছে কিছু সাধারণ নীতি থাকতে হবে যা অনুসরণ করার চেষ্টা করা উচিত।

সম্পাদনা: আমি যা করতে চাই তা খুব ভালভাবে ব্যাখ্যা করেছি বলে মনে হচ্ছে না। আমি একটি উদাহরণ নির্মাণ করি।

আমার কাছে কিছু পুরানো সফটওয়্যার থাকতে পারে যা এর কনফিগারেশনটি একটি 'বাইনারি' ফাইলে সংরক্ষণ করে - বিটফিল্ড, ইন্টিজার, স্ট্রিংগুলির একটি ধারাবাহিক, এবং কী না সমস্তই একসাথে আটকানো হয় এবং প্রোগ্রামটি বোঝে, তবে মানব-পঠনযোগ্য নয়। আমি এই বোঝা। এই ফাইলটি বিশ্লেষণ ও সংশোধন করার জন্য একটি লাইব্রেরি বাস্তবায়নের জন্য একটি বিশদ হিসাবে, মানব-পঠনযোগ্য উপায়ে এই ফাইলটির ফর্ম্যাটটি হুবহু ডকুমেন্ট করতে চাই। অতিরিক্ত হিসাবে, আমি এটি অন্য লোকেরা সহজেই বোঝে।

এই জাতীয় দলিল লিখিত হতে পারে বিভিন্ন উপায়। উপরের পিকেজিআইপি উদাহরণটি খুব শব্দযুক্ত এবং বেশিরভাগ ক্ষেত্রে ফ্রি ফর্ম্যাটটিকে ফ্রি পাঠ্যে বর্ণনা করে। PS2 উদাহরণ মানগুলির ধরণ, অফসেট এবং আকারগুলির সারণী দেয়, সেগুলির অর্থ কী তা নিয়ে বিস্তৃত মন্তব্য। এক্সএন্ট্যাক্সউইকির মতো আরও অনেকেই কেবল পরিবর্তনশীল প্রকার এবং আকারগুলি তালিকাবদ্ধ করে খুব কম বা কোনও মন্তব্য না করেই।

আমি জিজ্ঞাসা করি কোনও কোডিং শৈলীর গাইডের অনুরূপ কোনও মানদণ্ড রয়েছে কি না, যা এই জাতীয় ডকুমেন্টেশন কীভাবে লিখতে হয় তার জন্য গাইডেন্স সরবরাহ করে। যদি তা না হয় তবে এমন কোনও সুপরিচিত চমৎকার উদাহরণ আছে যা আমার অনুকরণ করা উচিত? যদি তা না হয় তবে কেউ কি কমপক্ষে কিছু দরকারী পরামর্শের সংক্ষিপ্ত বিবরণ দিতে পারেন?



হা! ঐ অনুভুতি আমি বুঝি. আমি যে ফর্ম্যাটটির দিকে চেয়েছিলাম তার কাছে আমার কাছে আসল উত্স কোডটি ছিল যা ফাইলটি লিখেছিল। সমস্যাটি হ'ল ভেরিয়েবলগুলি কাঠামোর সংজ্ঞায়নের চেয়ে আলাদা ক্রমে লেখা হচ্ছিল, এর মধ্যে কিছু বাড়তি জিনিস ছড়িয়ে দেওয়া হয়েছিল। এবং অফসেট সম্পর্কে মন্তব্যগুলি ভুল ছিল। এটি এই প্রশ্নের অনুপ্রেরণার অংশ - এটি না করার দৃ strong় ইচ্ছা।
সোপোফোরিক

1
ডকুমেন্টেড বিপরীত ইঞ্জিনিয়ারড ফাইল টাইপগুলির সাথে আমার একমাত্র অভিজ্ঞতা হ'ল wiibrew.org থেকে। আমি যদি সঠিকভাবে মনে রাখি তবে তারা ফাইলটিকে একটি হিসাবে নথিভুক্ত করে struct। এটি বেশ ভাল কাজ করেছে।
মেটাফাইট

1
আমি প্রশ্নটি ভুল বুঝে যাচ্ছি তবে মনে হচ্ছে আপনি ইবিএনএফ এর মতো কিছু খুঁজছেন ।

@ ম্যাটফেনউইক: বিএনএফ একটি ভাষার সিনট্যাক্স নির্দিষ্ট করার জন্য; আমি ঠিক কি পরে না। আমি কোন ধরণের ফাইল ফর্ম্যাটটি বোঝাতে চাইছি তা পরিষ্কার করতে সম্পাদনা করব।
সোপোফরিক

উত্তর:


4

একটি বাইনারি ফাইল নির্দিষ্ট বিধি অনুসারে লজিকাল ইউনিটগুলিতে সাজানো বিটের কেবল একটি ক্রম । এই নিয়মগুলিকে সাধারণত ব্যাকরণ বলা হয় । ব্যাকরণ চার প্রকার (শ্রেণীতে বিভক্ত করা যায় চমস্কি অনুক্রমের ), এবং জন্য প্রসঙ্গ-মুক্ত ব্যাকরণ আপনি ব্যবহার করা উচিত Backus-ঘর 'নর' ফরম সম্প্রসারিত তার মন্তব্যে ম্যাট Fenwick দ্বারা সরু আউট হিসাবে। ফাইলটিতে সঞ্চিত ক্রমটির ব্যাখ্যা (বা শব্দার্থবিজ্ঞান) মৌখিকভাবে বা ভাল-টীকাযুক্ত নমুনা প্রোগ্রামগুলি সিরিয়ালাইজিং এবং তথ্যটি deserialization সহ বর্ণনা করা যেতে পারে।

বাইনারি ফাইল ফর্ম্যাটের ডকুমেন্টিং সম্পর্কে আরও জানতে, যেমন ASN.1 স্ট্যান্ডার্ডটি পড়ার পরামর্শ দিন ।


প্রযুক্তিগতভাবে , বেশিরভাগ কনফিগারেশন ফাইলের একটি প্রসঙ্গ-মুক্ত ভাষা থাকে, কারণ তাদের একটি সীমাবদ্ধ ভাষা থাকে। ব্যবহারিকভাবে, EBNF- তে 'সমস্ত 2-বাইট স্ট্রিংয়ের সেট' (যেমন একটি কনফিগার ফাইলের জন্য যা কেবলমাত্র 16-আইটেম বিটফিল্ড) লিখতে কাউকে কিছুই শেখায় না। ASN.1 স্ট্যান্ডার্ডের পয়েন্টারটি আমি পেয়েছি এমন উত্তরের নিকটতম জিনিস, যদিও এটি ASN.1 এর একটি স্পেসিফিকেশন বলতে কম্পিউটার দ্বারা পড়া বোঝানো হয়েছে, এবং আমি মানুষের জন্য ডকুমেন্টেশন লেখার জন্য তথ্য চেয়েছিলাম। যাইহোক, যদি আমার প্রয়োজনীয়তার সাথে আরও বেশি ঘনিষ্ঠতার সাথে মেলে না, তবে খুব শীঘ্রই, আমি এই উত্তরটি গ্রহণ করব। আপনার সাহায্যের জন্য ধন্যবাদ.
সোপোফরিক

2

এটি অদ্ভুত কারণ ফাইল ফর্ম্যাটগুলির তাত্ক্ষণিক অনুসন্ধানে একটি উইকিপিডিয়া নিবন্ধ (ফাইল ফর্ম্যাটগুলির তালিকা) এনেছে । এটিতে বেশ কয়েকটি ভিডিও গেম ডেটা ফর্ম্যাটও রয়েছে।

ফাইলসিস্টেমগুলিকে সমর্থন করে এমন সিস্টেমগুলিতে ভিডিও গেমগুলির জন্য ডেটাগুলির সাধারণ ফর্ম্যাটগুলির তালিকা, বেশিরভাগ পিসি গেমস।

এটিতে ভিডিও গেম স্টোরেজ মিডিয়া ফর্ম্যাটগুলির একটি বৃহত নির্বাচন অন্তর্ভুক্ত রয়েছে ।

যখন কোনও গেমের রম চিত্র বা স্টোরেজ মিডিয়ামটি কোনও মূল রম ডিভাইস থেকে একটি বহিরাগত মেমরির অনুলিপি করা হয় যেমন হার্ড ডিস্কের ব্যাকআপ উদ্দেশ্যে বা গেমটি কোনও এমুলেটর দিয়ে খেলতে সক্ষম হয় তার জন্য সর্বাধিক ব্যবহৃত ফাইল নাম এক্সটেনশনের তালিকা। কার্টরিজ-ভিত্তিক সফ্টওয়্যারগুলির ক্ষেত্রে, যদি প্ল্যাটফর্মের নির্দিষ্ট এক্সটেনশন ব্যবহার না করা হয় তবে ফাইলের নাম ".rom" বা ".bin" সাধারণত স্পষ্ট করতে ব্যবহৃত হয় যে ফাইলটিতে কোনও রমের একটি সামগ্রীর অনুলিপি রয়েছে। রম, ডিস্ক বা টেপ চিত্রগুলিতে সাধারণত কোনও একক ফাইল বা রম থাকে না, ব্যাকআপ মাধ্যমের কোনও একটি ফাইলের মধ্যে থাকা একটি সম্পূর্ণ ফাইল বা রম কাঠামো থাকে।


ফাইল ফর্ম্যাটের ডকুমেন্টিংয়ের জন্য কি কোনও গৃহীত মান আছে?

কোথাও কোনও "অফিসিয়াল" মান নেই। যেহেতু কোনও ফাইল দ্বারা ফাইল ফর্ম্যাটগুলি তৈরি করা হয়, তাই সংস্থাটি ডকুমেন্টেশনের ফরমেটের বিষয়ে সিদ্ধান্ত নেয়।


2
আমি মনে করি আপনি আমার প্রশ্নটি ভুল বুঝেছেন। অবশ্যই নথিভুক্ত অনেক ফাইল ফর্ম্যাট আছে - আমি জেনট্যাক্সউইকি মেন্যুন করেছি, যার মধ্যে 1500 এরও বেশি রয়েছে। তবে আমি যে ফাইলগুলিতে আগ্রহী সেগুলি প্রায়শই ডকুমেন্টেড হয় না - গেম-সুনির্দিষ্ট জিনিসগুলি সাধারণত ধারক বিন্যাসের চেয়ে সাধারণত ফাইল বা কনফিগারেশন সংরক্ষণ করে। আমার অবস্থাটি হ'ল কোনও ডকুমেন্টেশন উপস্থিত নেই এবং আমি কিছু লেখার ইচ্ছা নিয়েছি - তবে এটি কীভাবে হবে?
সোপোফোরিক

একইভাবে অন্য সমস্ত ফাইল ফর্ম্যাট নথিভুক্ত করা হয়েছিল।
রবার্ট হার্ভে

4
@ রবার্টহারভে: বিভ্রান্তিকর, বিবাদমান, ভুল এবং অসম্পূর্ণ? গুরুতরভাবে, যদিও, আমি যেমনটি উল্লেখ করেছি, আমি ব্যবহারের বিভিন্ন সাধারণ শৈলী নোট করেছি। কোনও নির্দিষ্ট শৈলীর অগ্রাধিকার দেওয়া হবে কিনা তা জানতে আমি এই অঞ্চলে কাজের সাথে যথেষ্ট পরিচিত নই। XentaxWiki- এ থাকা একক বৃহত্তম সংস্থানটি আমি দেখেছি, এটি কেবলমাত্র ধারক বিন্যাসের জন্য, সুতরাং এগুলি আরও সাধারণ ক্ষেত্রে ম্যাপ করে না। যদি আমি ভেবেছিলাম যে অনুকরণের জন্য কেবল একটি এলোমেলো উদাহরণ বেছে নেওয়া ভাল হবে তবে আমি পরামর্শ চাইব না।
সোপোফোরিক

@ সোফোরিক: তারপরে আপনি কী চান সে সম্পর্কে আপনাকে আরও পরিষ্কার করা দরকার। আপনি কি গুরুত্ব সহকারে আমাদের জিজ্ঞাসা করছেন "আমি কীভাবে ফাইল ফর্ম্যাটের জন্য ডকুমেন্টেশন লিখব?" প্রযুক্তিগত লেখার উপর সম্পূর্ণ শিক্ষামূলক পাঠ্যক্রম রয়েছে যা সেই বিষয়ে নিবেদিত। একটি স্বরূপ সুনির্দিষ্ট, ভাল-লিখিত ডকুমেন্টেশন (আপনার ব্যক্তিগত মান অনুযায়ী) রয়েছে এবং এটির অনুকরণ করুন Find এগুলি সব বোকা হতে পারে না। ইঙ্গিত: ব্যবহারের উদাহরণগুলি রাজা। ব্যাখ্যা স্পষ্টতা কাছাকাছি দ্বিতীয় আসে।
রবার্ট হার্ভে

1
@ রবার্টহারভে: হ্যাঁ, আপনার কোডটি কীভাবে মন্তব্য করবেন বা কোনও ফাংশন কীভাবে ডকুমেন্ট করবেন সে সম্পর্কে অনেক প্রশ্নের মত, আমি একটি বোধগম্য ফর্ম্যাট স্পেসিফিকেশন লেখার জন্য একটি 'স্টাইল গাইড' খুঁজছি। যদি আমি কোনও আরএফসি কীভাবে লিখতে হয় তা জানতে চাই, আমি আরএফসি 2223-এর দিকে নজর রাখতে পারি Py পাইথন কোডে কী স্টাইলটি ব্যবহার করতে হয় তা জানতে চাইলে আমি পিইপি 8 পড়তে পারি যদি আমি কীভাবে প্রশ্নগুলি স্মার্ট ওয়ে জিজ্ঞাসা করতে জানতে চাই, ইএসআর আমাকে কভার করেছে। ফাইল ফর্ম্যাট স্পেসিফিকেশন জন্য কিছু অনুরূপ গাইডেন্স আছে? বা এর একটি সুপরিচিত চমৎকার উদাহরণ? আমি অবশ্যই আমার নিজের রায়টি ব্যবহার করতে পারি, তবে যদি কোনও মান উপস্থিত থাকে তবে এটি অনুসরণ করা বুদ্ধিমানের কাজ।
সোপোফোরিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.