タイトル : 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 パラメータが指すバッファへ格納されます。 |