Windows ini 文件中是否允许注释?(...假设您使用GetPrivateProfileString api 函数来读取它们...)
[Section]
Name=Value ; comment
; full line comment
而且,在任何地方都有适当的 .INI 文件格式规范吗?
感谢您的回复- 但是也许我不够清楚。这只是我感兴趣的 Windows API 调用读取的格式。我知道其他实现允许注释,但它特别是我需要了解的 MS Windows 规范和实现。
Windows ini 文件中是否允许注释?(...假设您使用GetPrivateProfileString api 函数来读取它们...)
[Section]
Name=Value ; comment
; full line comment
而且,在任何地方都有适当的 .INI 文件格式规范吗?
感谢您的回复- 但是也许我不够清楚。这只是我感兴趣的 Windows API 调用读取的格式。我知道其他实现允许注释,但它特别是我需要了解的 MS Windows 规范和实现。
Windows INI API 支持:
;
权威来源是从 INI 文件中读取值的 Windows API 函数
GetPrivateProfileString
从初始化文件的指定部分中检索字符串。
“全行注释”起作用的原因是请求的值不存在。例如,在解析以下ini
文件内容时:
[Application]
UseLiveData=1
;coke=zero
pepsi=diet ;gag
#stackoverflow=splotchy
读取值:
UseLiveData
:1
coke
:不存在;coke
:不存在pepsi
:diet ;gag
stackoverflow
:不存在#stackoverflow
:splotchy
更新:我曾经认为数字符号 (#) 是伪行注释字符。使用前导 # 进行隐藏stackoverflow
的原因是该名称stackoverflow
不再存在。事实证明,分号 ( ;
)是行注释。
但不支持尾随评论。
我在 INI 文件中看到了注释,所以是的。请参阅此维基百科文章。我找不到官方规范,但这是正确的注释语法,据我所知,很多游戏 INI 文件都有这个。
编辑
API 返回值和注释(在我的回复中忘记提到这一点),只需构建和示例 INI 文件并在此(带有注释)上调用 API,您可以看到它是如何返回的。
在行首使用分号 --->> ; <<---
前任。
; last modified 1 April 2001 by John Doe
[owner]
name=John Doe
organization=Acme Widgets Inc.
我喜欢@Ian Boyd的分析,因为它是基于微软官方的GetPrivateProfileString()方法。
在我尝试编写与 Microsoft 兼容的 INI 解析器时,我仔细查看了上述 Microsoft API 以及我发现的评论:
例子:
this=cannot be accessed
[section]this=is ignored
;this=is a line comment
;this=is a comment preceded by spaces
key=value <... 65530 spaces ...>this=cannot be parsed
是的。看看维基百科和INI 文件格式的 Cloanto 实现(见页面底部)。