VB.NET勉強中

|

ここにきてようやく本腰を入れてVB.NETを勉強し始めました。
まだ解決していない課題も抱えていますが、徐々に解決していくと思います。
最近の話では、設定ファイルの操作をやっています。従来、Windowsのアプリケーションでは、INIファイルやレジストリを使って各種設定情報を保存していました。いろいろな文献を読んだ結果、「これからの時代、やはりXMLでしょう」という結論に達しました。しかし、アプリケーションの設定をXMLで管理する具体的な方法について書かれているものが意外と少ないのです。ヘルプファイル(MSDNライブラリなどのドキュメント)も含めて検索してみたのですが、なかなか見つかりません。結局、海外の(英語で書かれた)文書をWebで検索して自分なりにまとめました。

まずは、XMLについて簡単に勉強しました。要素、属性といった用語も理解しました。<****/>という書式の意味を今頃知りました。

今のところの結論としては、次のような方法でXMLに設定を保存するのがよいのではないかと思っています。
読み込み、プログラム内の保持については、System.Data.DataSet, System.Data.DataTable(膨大なクラスライブラリを覚えるためImportしていてもSystemとかWindowsとか書くようにしています)を使って行います。従来であれば構造体を使って変数に保存すると思いますが、設定項目が増えるたびに構造体や変数の宣言をしなければならず面倒です。
内容を変更するたびにファイルを更新するのは個人的に好きではないので、ファイル出力用のメソッドは分けることにしました。
今回は、XML文書(テキストファイル)へ出力するときのことについて書きます。

Dim myFileStream As New System.IO.FileStream(xmlFileName, System.IO.FileMode.Create)

まず、DataSetを使います。XMLWriterはデフォルトではEncodingがUTFとなっていますが現在のところ一般的であるUTF-8としましょう。

Dim myXmlWriter As New System.Xml.XmlTextWriter(myFileStream, System.Text.Encoding.UTF8)

インデントはあった方が人間には読みやすいので入れましょう。初期値ではインデントどころか改行もないXML文書が出力されます。

myXmlWriter.Formatting = System.Xml.Formatting.Indented

いきなり書き出すとXML宣言のないXML 1.0勧告に沿っていない文書を作ってくれますのでまずは宣言を明示的に出力します。

myXmlWriter.WriteStartDocument()

そのままではルート要素が"NewDataset"となってしまうため、「アプリケーションの設定」ということが分かるようなルート要素を定義します。

ds.DataSetName = "AppSettings"

ここまで来たらあとはファイルへ出力するだけです。最後にクローズしておきましょう。

ds.WriteXml(myXmlWriter)
myXmlWriter.Close()

.NET環境での開発は日々勉強です。

このブログ記事について

このページは、S.Yamが2004年9月20日 23:59に書いたブログ記事です。

ひとつ前のブログ記事は「miniSDメモリのカバー」です。

次のブログ記事は「地下鉄環状線間もなく開通」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01