XML に保存

Text Editor の設定情報を XML に Save, Load します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

XML に保存

  1. Text Editor で設定したフォントの情報を XML に保存して、次回起動されたときに再現します。
    XML の基本は XML Save&Load を参照して下さい。
    空のプロジェクトから構築した場合は結構面倒なのですが、プロジェクトを自動生成した場合は簡単です。
  2. 前回定義したグローバル領域です。
        public partial class Form1 : Form
        {
            string txtfile;         //ファイル名
            string txtcode= string.Empty;   //TEXTコード
            Font font;
            public string XML_File = @"C:\tmp\texteditor.xml";
            StreamReader  reader;
            StreamWriter  writer;
    
  3. Form の Constructor から XML_Load(); を呼び出して font を設定します。
    InitializeComponent() の後で TextBox に font を設定します。
        public Form1()
        {
            XML_Load();
            InitializeComponent();
            this.textBox1.Font = font;
        }
    
  4. XML_Load() メソッドで XML からフォント情報を入力して設定します。
    XML が存在しないとき(最初の起動時など)は ["MS 明朝", 12] を規定値として設定します。
    Text Editor では、文字のピッチを揃える方が普通です。
    フォントの種類は問いませんが、先頭に P が付かないフォントを設定して下さい。
        // XML が存在するとき font にロードする。
        private void XML_Load()
        {
            if (File.Exists(XML_File))  //ファイルの有無をチェック
            {
                System.Xml.Serialization.XmlSerializer serializer =
                    new System.Xml.Serialization.XmlSerializer(typeof(XmlClass));
                System.IO.FileStream fs = new System.IO.FileStream(XML_File, System.IO.FileMode.Open);
                XmlClass obj = (XmlClass)serializer.Deserialize(fs);
                fs.Close();
                int point = (int)obj.point;
                font = new Font(obj.name, point);
            }
            else font = new Font("MS 明朝", 12);
        }
    
  5. アプリケーションの終了時にフォントの情報を XML ファイルに記録します。
    Form のデザインから Form を選択して、FormClosed に "Form_Closed" とタイプして下さい。
    イベントハンドラ Form_Closed() のソースコードです。
        private void Form_Closed(object sender, FormClosedEventArgs e)
        {
            XmlClass obj = new XmlClass();
            obj.name = font.Name;
            obj.point = font.SizeInPoints;
            System.Xml.Serialization.XmlSerializer serializer =
                new System.Xml.Serialization.XmlSerializer(typeof(XmlClass));
            System.IO.FileStream fs = new System.IO.FileStream(XML_File, System.IO.FileMode.Create);
            serializer.Serialize(fs, obj);
        }
    
  6. XML ファイルに記録するデータを定義する構造体(クラス)です。
        // XMLファイルに保存するオブジェクトのための構造体(クラス)
        public class XmlClass
        {
            public string name;
            public float  point;
        }
    
  7. 次回起動したときに、フォントが設定されることを確認して下さい。
    これで一応 Text Editor が使えるようになりました。
    しかし、Editor として必要な幾つかの課題が残っています。

【NOTE】

空のプロジェクトから構築した場合は、ちょっと面倒な操作が必要です。
XML を使って Save, Load するときは using を定義して下さい。
using System.Xml.Serialization;     // System.Xml.dll を追加
さらに System.Xml.dll をプロジェクトに組み込んで下さい。
Windows や Visual Studio の Version により、多少の違いがあります。
今回は [Windows8.1 評価版] [Microsoft Visual Studio Professional 2013 Preview - 日本語] の環境で開発しました。

[Next Chapter ↓] Command Line
[Previous Chapter ↑] メニューをプログラム

超初心者のプログラム入門(C# Frame Work)