- - PR -
.NETでの「INIファイル」
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2002-10-21 10:26
いつも参考にさせていただいております。
表題の件ですが、まだまだINIファイル、またはINIファイル形式の ファイルを使用しているアプリもなかなか多い事と思います。 バージョンアップ等で.NETを使う際に、このINIファイルを使用する クラスおよびメソッドが自分なりに探したのですが見つかりません。 サポートはされなくなってしまったのでしょうか? MFCではあったように思うのですが・・・ 自作の道しかのこされてないのでしょうか・・・ そういえば、こんなんがあったよ! という方いらっしゃいましたら、 ご教授いただけるとありがたいです。 よろしくお願いします。 自作しなかないのかなぁ〜〜 | ||||
|
投稿日時: 2002-10-23 17:36
Mickyさんこんにちわ。
iniファイルのクラスは.NET Frameworkにはなさそうですね。 KERNEL32の WritePrivateProfileString GetPrivateProfileString をDllImportして使用するのが一番ラクチンではないでしょうか。 | ||||
|
投稿日時: 2002-10-30 14:19
Valhallaさん、書き込みありがとうございます。
&お礼が遅くなってすいません。 やっぱりそうですかぁ〜 いたれりつくせりの.Netだと思ったのですが、 ない機能もあるんですね。 ただ、文字列の編集機能は充実してるようなので 自作もいいかな?とも思っています | ||||
|
投稿日時: 2002-10-30 15:55
>>いたれりつくせりの.Netだと思ったのですが、
>>ない機能もあるんですね。 う〜ん、それは、とらえ方が少しずれているのでは? Windows3.1からWindows95に移行したときに、MSは「これからはINIファイルではなく、レジストリを使うように」「INIファイルを扱うAPIは今後サポートされなくなる」と警告していたように思います。VS6の頃のヘルプファイルにも、その辺は書かれていると思いますが? | ||||
|
投稿日時: 2002-10-30 17:07
Jittaさん、こんにちは!
そうなんです。Jittaさんのおっしゃる通りなんです。 書き方が悪かったですね。 私もINIファイルに関しては、そういう認識で居たのですが 実際には、環境設定データを格納する本来の意味での INIファイルではなく、なぜかいろんな設定データを格納する ファイルとしていまだに使われているんです。 なんでそんな設計にしたの?といいたくなるところなのですが、 まぁ、やらなきゃしょうがない・・・ .Netにもおまけ程度でいいからiniファイルの取得メソッドが あれば・・・と思ったんですが、甘かったですね 失礼しました。 | ||||
|
投稿日時: 2002-10-31 08:36
ああ、その気持ち、わかります。わたしは、「レジストリに登録すると、いつでもメモリに常駐している」という理由で、「レジストリは使いたくない派」です。 ところでINIファイルについてですが、DataSetとDataTableに落とし込む、というのはどうですか。DataSetを1つのINIファイルと見立て、DataTableをセクションに見立てます。テーブルの構成は、2列で十分でしょう。読み込むメソッドだけ作っておき、DataSet.WriteXMLでXML化してしまえば、今後、楽だと思います。 | ||||
|
投稿日時: 2002-10-31 12:59
う〜む、さすがJittaさん!(^^)
なるほどなるほど・・・ ありがとうございます。 参考にさせていただきました。 | ||||
|
投稿日時: 2002-11-05 16:29
iniファイルを直接使用するということではないのですが、リソースファイルを作成して使用するということも一つの手段です。
基本的にテキストファイルに「Key=Value」形式で記載し、SDKに付属されているリソース ファイル ジェネレータ(Resgen.exe) を使って.resx、または.resourcesファイルに変換します。当然、.NETアプリから入出力もできるので、リソースファイルは.NETのiniファイルという捉え方もできます。 iniファイルの拡張子をtxtにしてResgen.exeで変換すればリソースファイルに変換することは可能だと思います。 すでに配布してあるiniファイルの変換については、独自に読み込んで変換する変換用アプリを一緒に配布するのも一つの手段です。 [ メッセージ編集済み 編集者: 二天 編集日時 2002-11-05 20:49 ] |