ไฟล์ windows .ini มาตรฐานอนุญาตให้แสดงความคิดเห็นหรือไม่


92

อนุญาตให้แสดงความคิดเห็นในไฟล์ Windows ini หรือไม่ (... สมมติว่าคุณกำลังใช้ฟังก์ชัน GetPrivateProfileString api เพื่ออ่าน ... )

[Section]
Name=Value   ; comment

; full line comment

และมีข้อกำหนดที่เหมาะสมของรูปแบบไฟล์. INI ทุกที่หรือไม่?

ขอบคุณสำหรับการตอบกลับ - อย่างไรก็ตามฉันอาจจะไม่ชัดเจนพอ เป็นเพียงรูปแบบที่อ่านโดย Windows API Callsที่ฉันสนใจฉันรู้ว่าการใช้งานอื่น ๆ อนุญาตให้แสดงความคิดเห็นได้ แต่โดยเฉพาะข้อกำหนดและการใช้งาน MS Windows ที่ฉันจำเป็นต้องรู้


1
API ส่งคืนค่าและข้อคิดเห็นคุณเพียงแค่มองหา SemiColon และอ่านหรือตัดสิ่งนี้ออกเมื่อพบโดยใช้นิพจน์ทั่วไปหรือเพียงแค่มองหา;
RoguePlanetoid

7
@RoguePlanetoid นิพจน์ทั่วไปเพื่อค้นหา;ตัวละคร? อย่างจริงจัง!?
ระบุได้

1
@IInspectable สามารถใช้ regex เพื่ออ่านความคิดเห็นเท่านั้นดังนั้นแยกองค์ประกอบหลังเครื่องหมายอัฒภาคหรือตามที่ฉันพูดถึงในความคิดเห็นของฉันหรือมองหา; ให้ทางเลือกอื่นในการดึงความคิดเห็นเองหรือมองหาสิ่งที่ฉันคิด
ว่าความ

คำตอบ:


96

รองรับ Windows INI API สำหรับ:

  • ความเห็นบรรทัด : ใช่โดยใช้เครื่องหมายอัฒภาค;
  • ความคิดเห็นต่อท้าย:ไม่

แหล่งที่มาที่เชื่อถือได้คือฟังก์ชัน Windows API ที่อ่านค่าจากไฟล์ INI

GetPrivateProfileString

ดึงสตริงจากส่วนที่ระบุในไฟล์เริ่มต้น

เหตุผลที่"ความคิดเห็นแบบเต็มบรรทัด"ทำงานได้เนื่องจากไม่มีค่าที่ร้องขอ ตัวอย่างเช่นเมื่อแยกวิเคราะห์iniเนื้อหาไฟล์ต่อไปนี้:

[Application]
UseLiveData=1
;coke=zero
pepsi=diet   ;gag
#stackoverflow=splotchy

การอ่านค่า:

  • UseLiveData: 1
  • coke: ไม่อยู่
  • ;coke: ไม่อยู่
  • pepsi: diet ;gag
  • stackoverflow: ไม่อยู่
  • #stackoverflow: splotchy

อัปเดต : ฉันเคยคิดว่าเครื่องหมายตัวเลข (#) เป็นอักขระแสดงความคิดเห็นบรรทัดหลอก เหตุผลที่ใช้ # งานนำหน้าเพื่อซ่อนstackoverflowเนื่องจากstackoverflowไม่มีชื่อนี้แล้ว และปรากฎว่าเซมิโคลอน ( ;) เป็นบรรทัดแสดงความคิดเห็น

แต่ไม่มีการสนับสนุนสำหรับความคิดเห็นต่อท้าย


3
ตัวอย่างที่มีประโยชน์มาก แต่ฉันพบว่า"เหตุผลที่" ความคิดเห็นแบบเต็มบรรทัด "ทำงานได้เนื่องจากไม่มีค่าที่ร้องขอ" ซึ่งยากที่จะแยกวิเคราะห์ ฉันจะชี้แจงเพื่อบอกว่าการใช้งาน Windows INI ต้องใช้อัฒภาคก่อนคู่คีย์ / ค่า (ถ้ามี) มิฉะนั้นจะถือว่าเป็นส่วนหนึ่งของค่า
GravityWell

@Roddy คุณพูดถูก ฉันจดจ่อกับการใช้งานมาก#จนไม่ได้ใส่ใจกับไฟล์;. แก้ไขคำตอบเพื่อชี้ให้เห็นว่าเซมิโคลอนเป็นความคิดเห็นบรรทัด
Ian Boyd

29

ฉันเห็นความคิดเห็นในไฟล์ INI ใช่แล้ว โปรดดูบทความวิกิพีเดียนี้ ฉันไม่พบข้อกำหนดอย่างเป็นทางการ แต่นั่นเป็นไวยากรณ์ที่ถูกต้องสำหรับความคิดเห็นเนื่องจากไฟล์ INI ของเกมจำนวนมากมีสิ่งนี้เท่าที่ฉันจำได้

แก้ไข

API ส่งคืนค่าและข้อคิดเห็น (ลืมพูดถึงสิ่งนี้ในการตอบกลับของฉัน) เพียงสร้างและตัวอย่างไฟล์ INI และเรียก API ในสิ่งนี้ (พร้อมความคิดเห็น) และคุณสามารถดูว่าจะส่งคืนอย่างไร


1
เมื่อใช้แหล่งที่มาควรใช้แหล่งที่มาที่เชื่อถือได้มากที่สุดและแหล่งข้อมูลสนับสนุนใด ๆ
Mike Collins

1
แน่นอนว่านั่นเป็นความคิดที่ดี - อย่าสายเกินไปที่จะชี้ให้เห็นว่าแม้จะผ่านไปเจ็ดปีแล้ว
ก็ตาม


1

ใช่. ดูที่WikipediaและCloanto Implementation of INI File Format (ดูด้านล่างของหน้า)


9
อืม ... อะไรทำให้คุณคิดว่านี่เป็นข้อมูลจำเพาะที่เชื่อถือได้ของไฟล์ INI?
reuben

แม้ว่าการใช้งาน Cloanto อาจไม่ใช่ข้อมูลจำเพาะอย่างเป็นทางการ แต่ฉันก็ชอบคำอธิบายของพวกเขา
Koekiebox
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.