標準のWindows.iniファイルでコメントを使用できますか?


91

Windowsのiniファイルでコメントを使用できますか?(... GetPrivateProfileString api関数を使用してそれらを読み取ると仮定します...)

[Section]
Name=Value   ; comment

; full line comment

そして、どこかに.INIファイル形式の適切な仕様がありますか?

返信ありがとうございます-しかし、多分私は十分に明確ではありませんでした。私が興味を持っているのは、Windows API呼び出し読み取られる形式だけです。他の実装でコメントが許可されていることは知っていますが、特に知っておく必要があるのはMSWindowsの仕様と実装です。


1
APIは値とコメントを返します。セミコロンを探して読み取るか、正規表現を使用して遭遇したときにこれを取り除くか、;を探すだけです。
RoguePlanetoid 2009

7
@RoguePlanetoid正規表現、;文字を見つけるには?マジで!?
iInspectable 2013

1
@IInspectable正規表現を使用してコメントのみを読み取ることができるため、セミコロンの後に要素を抽出するか、コメントで述べたように、または;を探します。コメント自体を抽出するか、コメントの存在を探すための代替手段を提供します。セミコロンが存在するかどうかを確認するだけで、コメントに付加価値があると思いました。不完全なコメントがあった
RoguePlanetoid 2013

回答:


95

Windows INI APIのサポート:

  • 行コメント:はい、セミコロンを使用します;
  • 末尾のコメント:いいえ

信頼できるソースは、INIファイルから値を読み取るWindowsAPI関数です。

GetPrivateProfileString

初期化ファイルの指定されたセクションから文字列を取得します。

理由は「フルラインのコメント」要求された値が存在しないため、作業があります。たとえば、次のiniファイルの内容を解析する場合:

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

値の読み取り:

  • UseLiveData1
  • coke存在しない
  • ;coke存在しない
  • pepsidiet ;gag
  • stackoverflow存在しない
  • #stackoverflowsplotchy

更新:番号記号(#)は疑似行コメント文字だと思っていました。先頭の#を使用して非表示stackoverflowにする理由は、名前stackoverflowが存在しなくなったためです。そしてそれは、セミコロン(ことが判明;行コメント。

ただし、末尾のコメントはサポートされていません。


3
非常に役立つ例ですが、「「フルラインコメント」が機能する理由は、要求された値が存在しないためです」という文言を解析するのは難しいと思います。Windows INIの実装では、キーと値のペア(存在する場合)の前にセミコロンが必要です。それ以外の場合は、値の一部と見なされます。
GravityWell 2014年

@Roddyその通りです。私は使用に集中して#いたので、に注意を払いませんでした;。セミコロンは実際には行コメントであると指摘するための回答を修正しました。
イアン・ボイド

29

INIファイルでコメントを見たことがあるので、そうです。このウィキペディアの記事を参照しください。公式の仕様は見つかりませんでしたが、覚えている限り多くのゲームINIファイルにこれが含まれていたため、これはコメントの正しい構文です。

編集

APIは値とコメントを返します(私の返信でこれについて言及するのを忘れました)。INIファイルを作成して例を示し、これに対してAPIを呼び出します(コメント付き)。これがどのように返されるかを確認できます。


1
ソースを使用する場合は、最も信頼できるソースを使用してから、サポートするソースを使用する方が理にかなっています。
マイクコリンズ

1
でも後7年-ことを指摘し遅すぎることはありません-良いアイデアだと確信し
RoguePlanetoid


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.