あるツールのみを使用するときのみ、共通に用いるiniファイルの特定セクションのみを無効にすることを考えています。
[section]
a=1
b=2
これを
;[sencion]
a=1
b=2
などの形に変更可能でしょうか?
Iniファイルにそういう仕様はありません。
セクションを読み込めないように改名すれば、一応目的のことはできます。
無効か否かを判断するキーをもうけておくという手もありますね。
ありがとうございます。
セクション名を改行するにはどのようにすればよろしいでしょうか?
また、元に戻すことも考えているのですが可能でしょうか?
Iniファイルにそういう機能はありません。Iniファイルを直接操作せずしてできるのは、APIで提供された範囲のみ(文字列、整数の書き込み、セクションの削除等)だけです。代替え手段でごまかすしかありません。
改行するとIniファイル上ではセクションとして認識されませんし、
元に戻すのは、もちろん手動で(ファイルを自分で開いて操作)しないとダメです。
Iniファイルというファイル形式そのものは相当古く、当時考えられていた限りのものしかありませんし、様々な問題があります。
Delphiには、TMemIniFileというクラスがあり、Iniファイルと同等の処理を、メモリ上で行ってくれます。Iniファイルにある数々の問題も解決してあります。
確かそのTMemIniFileのラッパーDLLというのも、どこかで誰かが公開していたはず。それを探して導入を考えてみてもいいかもしれませんね(ただしどっちにしても改行はサポートしてません)。
ただ、手段がないわけではないですね。
改行は、必ずしもどこでも"改行"でなくては、——つまり"文字コード13と10でなければ"いけないのでしょうか?
そこでは使えない文字を無理に入れるには、その文字がなくなれば(もしくは一見他の文字のように見えれば)いいんですよね?
一行目の"直接操作せずして"というのは、"API以外の手段に頼らずして(ファイルを自分で開いて操作せずして)"っていういみです。念のため。
ありがとうございました。
結局、iniファイル内の変更は諦めました。
セクションの削除は可能でしたが、元に戻すのが面倒、且つ戻すタイミングが計れませんでした。
結局、同じexeを別のフォルダに格納して、各iniを固定しました。
ツイート | ![]() |