tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: Iniファイルのコメント
投稿日: 2018/10/24(Wed) 09:33
投稿者魔界の仮面弁士
> プログラムの設定にIniファイルを使用しています。
作成もプログラムから行うのでしょうか。
それとも読み込みだけですか?

読み込みについては、どのように行っていますか?

・Line Input # ステートメント
・Input / InputB / Input$ / InputB$ 関数
・Scripting.TextStream オブジェクト
・ADODB.Stream オブジェクト
・GetPrivateProfileString API
・GetPrivateProfileInt API
・GetPrivateProfileSectionNames API
・GetPrivateProfileSection API
・GetPrivateProfileStruct API
・その他

また、Unicode 形式の Ini ファイルなのか ANSI 版なのかも気になるところ。


INI ファイルの形式は何パターンかありますし、その解釈はアプリケーションによって異なります。
https://ja.wikipedia.org/wiki/INI%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB
たとえば上記でも、下記のような記述が見受けられます。
>> INIファイルのフォーマットは規格化・標準化はされておらず、明確には決まっていない。


> Key=データ  ;コメント
> というIniファイルを作っているのですが
INI ファイルの処理系によって、
・そもそもコメントをサポートしていない
・行頭「;」で始まる行をコメント行として認める
・行頭「#」で始まる行をコメント行として認める
・文中「;」以降の部分をコメントとして認める
・文中「#」以降の部分をコメントとして認める
・文中コメントを認めるが、" で囲まれていると無視される
などなど、いろいろなパターンがあるわけで…。


> ;が無視されずコメントまで取得してしまいます。
だったら、Split 関数を ; 以降を自分で切り落とせば、
「Key」に対して「データ  」という文字列が得られるかと。


> このファイルにGetPrivateProfileStringをすると
> ;が無視されずコメントまで取得してしまいます。
行頭ではなく、文中のセミコロンですよね。
GetPrivateProfileString はそういう実装ということでしょう。

https://msdn.microsoft.com/ja-jp/library/cc429770.aspx
>> Windows NT/2000:セミコロン(;)で始まるコメント行は削除され、lpReturnedString パラメータが指すバッファへ格納されません。
>> Windows 95/98:コメントを含めたセクション全体が、lpReturnedString パラメータが指すバッファへ格納されます。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。