标准的Windows .ini文件是否允许注释?

Rod*_*ddy 79 windows ini comments

Windows ini文件中是否允许注释?(...假设您正在使用GetPrivateProfileString api函数来读取它们...)

[Section]
Name=Value   ; comment

; full line comment
Run Code Online (Sandbox Code Playgroud)

并且,在任何地方都有适当的.INI文件格式规范吗?

谢谢你的回复 - 但也许我不够清楚.它只是我感兴趣的Windows API调用所读取的格式.我知道其他实现允许注释,但它特别是我需要了解的MS Windows规范和实现.

Ian*_*oyd 80

Windows INI API支持:

  • 行注释:是的,使用分号;
  • 尾随评论:没有

权威来源是Windows API函数,它从INI文件中读取值

GetPrivateProfileString

从初始化文件中的指定节中检索字符串.

"全行注释"工作的原因是因为请求的值不存在.例如,在解析以下内容时ini文件内容时:

[Application]
UseLiveData=1
;coke=zero
pepsi=diet   ;gag
#stackoverflow=splotchy
Run Code Online (Sandbox Code Playgroud)

阅读价值观:

  • UseLiveData: 1
  • coke:不在场
  • ;coke:不在场
  • pepsi: diet ;gag
  • stackoverflow:不在场
  • #stackoverflow: splotchy

更新:我曾经认为数字符号(#)是伪行注释字符.使用前导#工程隐藏的原因stackoverflow是因为名称stackoverflow不再存在.事实证明,分号(;)一个行注释.

但是没有支持尾随评论.

  • 非常有用的例子,但我发现措辞_"'全行注释'工作的原因是因为请求的值不存在"_难以解析.我要澄清说Windows INI实现需要在键/值对(如果存在)之前使用分号,否则它被视为值的一部分. (2认同)

Rog*_*oid 29

我在INI文件中看过评论,是的.请参阅这篇维基百科文章.我找不到官方规范,但这是评论的正确语法,因为我记得许多游戏INI文件都有这个.

编辑

API返回值和注释(忘记在我的回复中提到这一点),只需构造和示例INI文件并在此上调用API(带注释),您可以看到它是如何返回的.


Ant*_*eim 8

在行的开头使用半冒号--- >>; <<-

例如

; last modified 1 April 2001 by John Doe
[owner]
name=John Doe
organization=Acme Widgets Inc.
Run Code Online (Sandbox Code Playgroud)