วิธีจัดทำเอกสารข้อมูลจำเพาะรูปแบบไฟล์ [ปิด]


12

สำหรับโครงการฉันต้องทำงานกับไฟล์ประเภทต่าง ๆ จากเกมเก่า ๆ และซอฟต์แวร์ที่เกี่ยวข้อง - ไฟล์กำหนดค่า, บันทึก, ไฟล์เก็บถาวรทรัพยากรและอื่น ๆ ส่วนใหญ่ของเอกสารเหล่านี้ยังไม่ได้จัดทำเอกสารและไม่มีเครื่องมือใดที่ทำงานร่วมกับพวกเขาได้ดังนั้นฉันต้องย้อนกลับสร้างรูปแบบและสร้างห้องสมุดของตัวเองเพื่อจัดการกับมัน

แม้ว่าฉันไม่คิดว่าจะมีความต้องการส่วนใหญ่เป็นอย่างมาก แต่ฉันตั้งใจจะเผยแพร่ผลลัพธ์ของความพยายามของฉัน มีมาตรฐานที่ยอมรับสำหรับรูปแบบไฟล์เอกสารหรือไม่? เมื่อมองไปรอบ ๆ นั้นมีหลายลักษณะที่ใช้งาน: บางอย่างเช่น. ZIP รูปแบบไฟล์สเปคนั้นดูดีมาก คนอื่น ๆ เช่นเดียวกับใน XentaxWiki นั้นเป็นคำศัพท์ที่สั้นกว่ามาก - ฉันพบว่าบางคนอ่านยาก สิ่งที่ฉันชอบที่สุดคือคำอธิบายของระบบไฟล์การ์ดหน่วยความจำของ PlayStation 2ซึ่งมีทั้งข้อความอธิบายรายละเอียดและ 'แผนที่หน่วยความจำ' ที่มีออฟเซ็ตและอื่น ๆ - มันตรงกับกรณีการใช้งานของฉันมากที่สุด มันจะแตกต่างกันเล็กน้อยสำหรับรูปแบบที่แตกต่างกัน แต่ดูเหมือนว่าควรมีหลักการทั่วไปที่ฉันควรลองทำตาม

แก้ไข: ฉันดูเหมือนจะไม่ได้อธิบายอย่างดีว่าฉันต้องการทำอะไร ให้ฉันสร้างตัวอย่าง

ฉันอาจมีบางส่วนของซอฟต์แวร์เก่าที่เก็บการกำหนดค่าไว้ในไฟล์ 'binary' - ชุดของ bitfields, จำนวนเต็ม, สตริง, และอะไรก็ตามทั้งหมดติดกาวเข้าด้วยกันและเข้าใจโดยโปรแกรม แต่ไม่สามารถอ่านได้โดยมนุษย์ ฉันถอดรหัสสิ่งนี้ ฉันต้องการเอกสารว่ารูปแบบของไฟล์นี้ในรูปแบบที่มนุษย์สามารถอ่านได้เป็นข้อมูลจำเพาะสำหรับการนำไลบรารีไปใช้เพื่อวิเคราะห์และแก้ไขไฟล์นี้ นอกจากนี้ฉันต้องการให้คนอื่นเข้าใจได้ง่าย

มีหลายวิธีที่เอกสารดังกล่าวอาจถูกเขียนขึ้น ตัวอย่าง PKZIP ด้านบนนั้นใช้คำมากและส่วนใหญ่จะอธิบายรูปแบบไฟล์เป็นข้อความอิสระ ตัวอย่าง PS2 ให้ตารางประเภทค่าออฟเซ็ตและขนาดพร้อมความคิดเห็นที่ครอบคลุมเกี่ยวกับความหมายทั้งหมด คนอื่น ๆ เช่น XentaxWiki มีเพียงรายการประเภทและขนาดตัวแปรที่มีความเห็นเพียงเล็กน้อยหรือไม่มีเลย

ฉันถามว่ามีมาตรฐานใดบ้างคล้ายกับคู่มือสไตล์การเข้ารหัสซึ่งให้คำแนะนำเกี่ยวกับวิธีเขียนเอกสารประเภทนี้ ถ้าไม่มีตัวอย่างที่ยอดเยี่ยมที่รู้จักกันดีว่าฉันควรเลียนแบบหรือไม่? ถ้าไม่อย่างน้อยใครก็สามารถสรุปคำแนะนำที่เป็นประโยชน์ได้บ้าง



ฮา! ฉันรู้ว่าความรู้สึกนั้น รูปแบบหนึ่งที่ฉันดูที่จริงฉันมีซอร์สโค้ดต้นฉบับที่เขียนไฟล์ ปัญหาคือตัวแปรที่ถูกเขียนในลำดับที่แตกต่างกว่าในคำจำกัดความของโครงสร้างที่มีสิ่งพิเศษบางอย่างโรยในระหว่าง และความคิดเห็นที่ไม่ถูกต้องเกี่ยวกับการชดเชย มันเป็นส่วนหนึ่งของสิ่งที่เป็นแรงบันดาลใจให้กับคำถามนี้ - ความปรารถนาอย่างแรงกล้าที่จะไม่ทำเช่นนั้น
Sopoforic

1
ประสบการณ์เดียวของฉันกับไฟล์ประเภทวิศวกรรมย้อนกลับที่ทำเป็นเอกสารมาจาก wiibrew.org structถ้าผมจำไม่ผิดที่พวกเขาได้รับการบันทึกแฟ้มเป็น มันทำงานได้ค่อนข้างดี
MetaFight

1
ผมอาจจะเข้าใจผิดคำถาม แต่ดูเหมือนว่าคุณกำลังมองหาสิ่งที่ต้องการEBNF

@MattFenwick: BNF ใช้สำหรับระบุไวยากรณ์ของภาษา ไม่ใช่สิ่งที่ฉันตามมา ฉันจะแก้ไขให้ชัดเจนยิ่งขึ้นว่าฉันหมายถึงรูปแบบไฟล์ประเภทใด
Sopoforic

คำตอบ:


4

ไฟล์ไบนารีเป็นเพียงลำดับของบิตจัดเป็นหน่วยตรรกะตามกฎระเบียบบางอย่าง กฎระเบียบเหล่านี้มักจะเรียกว่าไวยากรณ์ ไวยากรณ์สามารถแบ่งออกเป็นสี่ประเภท ( ลำดับชั้นของ Chomsky ) และสำหรับไวยากรณ์ที่ไม่มีบริบทคุณควรใช้Extended Backus-Naur Formตามที่ Matt Fenwick ระบุไว้ในความคิดเห็นของเขา การตีความ (หรือซีแมนทิกส์) ของลำดับที่จัดเก็บในไฟล์สามารถอธิบายได้ด้วยวาจาหรือด้วยโปรแกรมตัวอย่างที่มีคำอธิบายประกอบอย่างดี

หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการจัดเก็บเอกสารในรูปแบบไฟล์ไบนารีขอแนะนำให้อ่านบนเช่นมาตรฐาน ASN.1


ในทางเทคนิคไฟล์ปรับแต่งส่วนใหญ่มีภาษาที่ไม่มีบริบทเนื่องจากมีภาษาที่ จำกัด ในทางปฏิบัติการเขียน 'ชุดของสตริง 2 ไบต์ทั้งหมด' (เช่นสำหรับไฟล์ปรับแต่งที่เป็นเพียงบิตฟิลด์ 16 รายการ) ใน EBNF ไม่ได้สอนอะไรเลย ตัวชี้ไปที่มาตรฐาน ASN.1 เป็นสิ่งที่ใกล้เคียงที่สุดกับคำตอบที่ฉันได้รับแม้ว่ามันจะดูเหมือนว่าข้อมูลจำเพาะใน ASN.1 นั้นมีไว้สำหรับอ่านโดยคอมพิวเตอร์และฉันต้องการข้อมูลสำหรับการเขียนเอกสารสำหรับมนุษย์ อย่างไรก็ตามหากไม่มีสิ่งใดที่ตรงกับความต้องการของฉันมากขึ้นในไม่ช้าฉันจะยอมรับคำตอบนี้ ขอบคุณสำหรับความช่วยเหลือของคุณ
Sopoforic

2

ที่แปลกเพราะการค้นหาอย่างรวดเร็วของรูปแบบไฟล์นำขึ้นบทความวิกิพีเดีย(รายชื่อของรูปแบบไฟล์) นอกจากนี้ยังมีรูปแบบวิดีโอเกมหลายรูปแบบ

รายการรูปแบบไฟล์ทั่วไปของข้อมูลสำหรับวิดีโอเกมบนระบบที่รองรับระบบไฟล์เกมพีซีส่วนใหญ่

นอกจากนี้ยังมีรูปแบบสื่อเก็บข้อมูลวิดีโอเกมมากมาย

รายการส่วนขยายชื่อไฟล์ที่ใช้กันโดยทั่วไปเมื่อมีการคัดลอกอิมเมจ ROM หรือสื่อบันทึกข้อมูลของเกมจากอุปกรณ์ ROM ดั้งเดิมไปยังหน่วยความจำภายนอกเช่นฮาร์ดดิสก์เพื่อสำรองหรือเพื่อให้เกมเล่นกับอีมูเลเตอร์ได้ ในกรณีของซอฟต์แวร์ที่ใช้คาร์ทริดจ์หากไม่ได้ใช้ส่วนขยายเฉพาะแพลตฟอร์มดังนั้นชื่อนามสกุลไฟล์ ".rom" หรือ ".bin" จะใช้เพื่อชี้แจงว่าไฟล์นั้นมีสำเนาเนื้อหาของ ROM อยู่ ภาพ ROM, ดิสก์หรือเทปมักจะไม่ประกอบด้วยไฟล์เดียวหรือ ROM แต่เป็นไฟล์ทั้งหมดหรือโครงสร้าง ROM ที่บรรจุอยู่ในไฟล์เดียวบนสื่อบันทึกข้อมูลสำรอง


มีมาตรฐานที่ยอมรับสำหรับรูปแบบไฟล์เอกสารหรือไม่?

ไม่มีมาตรฐาน "ทางการ" ที่ใดก็ได้ เนื่องจากรูปแบบไฟล์ถูกจัดทำโดย บริษัท บริษัท จึงตัดสินใจเลือกรูปแบบสำหรับเอกสาร


2
ฉันคิดว่าคุณเข้าใจผิดคำถามของฉัน แน่นอนว่ามีรูปแบบไฟล์มากมายที่ได้รับการบันทึกไว้ - ฉัน Menioned XentaxWiki ซึ่งมีมากกว่า 1500 ไฟล์ แต่ไฟล์ที่ฉันสนใจมักจะไม่มีการจัดทำเป็นเอกสาร - สิ่งเฉพาะเกมเช่นบันทึกไฟล์หรือการกำหนดค่าแทนที่จะเป็นรูปแบบคอนเทนเนอร์ทั่วไปโดยทั่วไป สถานการณ์ของฉันคือว่าไม่มีเอกสารประกอบและฉันตั้งใจจะเขียนบางอย่าง - ดังนั้นจะทำอย่างไร?
Sopoforic

แบบเดียวกับที่บันทึกไว้ในรูปแบบไฟล์อื่น ๆ
Robert Harvey

4
@RobertHarvey: เกิดความสับสนขัดแย้งไม่ถูกต้องและไม่สมบูรณ์ อย่างจริงจังแม้ว่าอย่างที่ฉันกล่าวถึงฉันสังเกตลักษณะทั่วไปที่แตกต่างกันในการใช้งาน ฉันไม่คุ้นเคยกับการทำงานในพื้นที่นี้มากพอที่จะรู้ว่าสไตล์ใดที่ต้องการ คนที่อยู่ใน XentaxWiki ซึ่งเป็นทรัพยากรที่ใหญ่ที่สุดที่ฉันเคยเห็นเกือบจะเป็นรูปแบบคอนเทนเนอร์เท่านั้นดังนั้นพวกเขาจึงไม่ได้จับคู่กับกรณีทั่วไปมากขึ้น หากฉันคิดว่าเพียงแค่เลือกตัวอย่างแบบสุ่มเพื่อเลียนแบบจะดีพอฉันจะไม่ขอคำแนะนำ
Sopoforic

@ โซฟีฟอริก: ถ้าอย่างนั้นคุณต้องชัดเจนในคำถามของคุณว่าคุณต้องการอะไร คุณกำลังถามเราอย่างจริงจังว่า "ฉันจะเขียนเอกสารสำหรับรูปแบบไฟล์ได้อย่างไร" มีหลักสูตรการศึกษาทั้งหมดเกี่ยวกับการเขียนทางเทคนิคที่อุทิศให้กับเรื่องนั้น ค้นหารูปแบบที่มีเอกสารที่ชัดเจนเขียนได้ดี (ตามมาตรฐานส่วนบุคคลของคุณ) และเลียนแบบรูปแบบนั้น พวกเขาไม่สามารถอึได้ทั้งหมด คำแนะนำ:ตัวอย่างการใช้งานเป็นราชา ความชัดเจนของคำอธิบายมาใกล้ในวินาที
Robert Harvey

1
@RobertHarvey: ใช่เช่นเดียวกับคำถามเกี่ยวกับวิธีการแสดงความคิดเห็นรหัสของคุณหรือวิธีการจัดทำเอกสารฟังก์ชั่นฉันกำลังมองหา 'คู่มือสไตล์' สำหรับการเขียนข้อกำหนดรูปแบบที่เข้าใจได้ ถ้าฉันต้องการทราบวิธีการเขียน RFC ฉันสามารถดู RFC 2223 หากฉันต้องการทราบว่ามีรูปแบบใดที่จะใช้ในรหัส Python ฉันสามารถอ่าน PEP 8 ได้ถ้าฉันต้องการทราบวิธีถามคำถามด้วยวิธีที่ชาญฉลาด ฉันมี ESR มีคำแนะนำที่คล้ายคลึงกันสำหรับข้อกำหนดรูปแบบไฟล์หรือไม่ หรือตัวอย่างที่ยอดเยี่ยมที่รู้จักกันดีของหนึ่ง? ฉันสามารถใช้วิจารณญาณของตัวเองได้อย่างแน่นอน แต่ถ้ามีมาตรฐานมันก็สมเหตุสมผลที่จะทำตาม
Sopoforic
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.