トップ  >  サンプルソース  >  XMLファイル入力/出力(C#/VB.NET)

XMLファイル入力/出力(C#/VB.NET)

2010年05月25日

XMLファイル出力とXMLファイル入力のサンプル(ソース/コード)です。VB6以前ではINIファイルをよく使用しましたが、.NETではXMLが使用されるためINIファイルはあまり使用されないかもしれません。しかし、XMLはテキストエディタで編集すると間違いやすいので、INIファイルの方が良いと思いますが如何でしょうか。。。

XMLファイル保存の仕組みを使ってウィンドウサイズを保存/回復するサンプルは「Windowサイズ保存(C#/VB.NET)」です。

INIファイルのサンプルは「INIファイル入力/出力(C#/VB.NET)」です。

' --------------------------------------------------------
' XMLファイル入出力のサンプル(VB.NET/VS2005)
' Imports System.IO (必要)
' Imports System.Text (必要)
' Imports System.Xml.Serialization (必要)
' XMLファイル
Private Const XML_FIL As String = "Xml.xml"
' XMLデータ
Public Class XmlData
    ' XML項目1
    Public val1 As Integer = 123
    ' XML項目2
    Public val2 As String = "ABC"
End Class
Public XmlDt As XmlData = New XmlData()

Private Sub Button1_Click( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs) _
    Handles Button1.Click

    ' XMLデータの読込
    ReadXml()
    System.Diagnostics.Debug.WriteLine(XmlDt.val1)
    System.Diagnostics.Debug.WriteLine(XmlDt.val2)
End Sub

' XMLデータのファイル保存
Private Sub SaveXml()
    Dim sw As StreamWriter = Nothing

    Try
        ' XMLファイルのPATH設定
        Dim AppPath As String = _
            System.AppDomain.CurrentDomain.BaseDirectory
        Dim XmlPath As String = AppPath & XML_FIL

        ' XMLデータ保存
        sw = New StreamWriter( _
            XmlPath, False, Encoding.Default)
        Dim serializer As XmlSerializer = _
            New XmlSerializer(GetType(XmlData))
        serializer.Serialize(sw, XmlDt)
    Catch ex As Exception
        System.Diagnostics.Debug.Write(ex)
    Finally
        If sw Is Nothing = False Then sw.Close()
    End Try
End Sub

' XMLデータのファイル読込
Private Sub ReadXml()
    Dim sr As StreamReader = Nothing

    Try
        ' XMLファイルのPATH設定
        Dim AppPath As String = _
            System.AppDomain.CurrentDomain.BaseDirectory
        Dim XmlPath As String = AppPath & XML_FIL

        If File.Exists(XmlPath) Then
            ' XMLデータ読込
            sr = New StreamReader( _
                XmlPath, Encoding.Default)
            Dim serializer As XmlSerializer = _
                New XmlSerializer(GetType(XmlData))
            XmlDt = CType(serializer.Deserialize(sr), _
                XmlData)
        Else
            ' XMLファイルが存在しない時は作成
            SaveXml()
        End If
    Catch ex As Exception
        System.Diagnostics.Debug.Write(ex)
    Finally
        If sr Is Nothing = False Then sr.Close()
    End Try
End Sub
' --------------------------------------------------------

// -------------------------------------------------------
// XMLファイル入出力のサンプル(C#.NET/VS2005)
// using System.IO; (必要)
// using System.Text; (必要)
// using System.Xml.Serialization; (必要)
// XMLファイル
private const String XML_FIL = "Xml.xml";
// XMLデータ
public class XmlData
{
    // XML項目1
    public int val1 = 123;
    // XML項目2
    public String val2 = "ABC";
}
public static XmlData XmlDt = new XmlData();

private void button1_Click(object sender, EventArgs e)
{
    // XMLデータの読込
    ReadXml();
    System.Diagnostics.Debug.WriteLine(XmlDt.val1);
    System.Diagnostics.Debug.WriteLine(XmlDt.val2);
}

// XMLデータのファイル保存
private static void SaveXml()
{
    StreamWriter sw = null;
    try
    {
        // XMLファイルのPATH設定
        String AppPath =
            System.AppDomain.CurrentDomain.BaseDirectory;
        String XmlPath = AppPath + XML_FIL;

        // XMLデータ保存
        sw = new StreamWriter(
            XmlPath, false, Encoding.Default);
        XmlSerializer serializer =
            new XmlSerializer(typeof(XmlData));
        serializer.Serialize(sw, XmlDt);
    }
    catch (Exception ex)
    {
        System.Diagnostics.Debug.Write(ex);
    }
    finally
    {
        if (sw != null) sw.Close();
    }
}

// XMLデータのファイル読込
private static void ReadXml()
{
    StreamReader sr = null;
    try
    {
        // XMLファイルのPATH設定
        String AppPath =
            System.AppDomain.CurrentDomain.BaseDirectory;
        String XmlPath = AppPath + XML_FIL;

        if (File.Exists(XmlPath))
        {
            // XMLデータ読込
            sr = new StreamReader(
                XmlPath, Encoding.Default);
            XmlSerializer serializer =
                new XmlSerializer(typeof(XmlData));
            XmlDt = (XmlData)(serializer.Deserialize(sr));
        }
        else
        {
            // XMLファイルが存在しない時は作成
            SaveXml();
        }
    }
    catch (Exception ex)
    {
        System.Diagnostics.Debug.Write(ex);
    }
    finally
    {
        if (sr != null) sr.Close();
    }
}
// -------------------------------------------------------
スポンサーサイト

Windowサイズ保存(C#/VB.NET) | トップページへ戻る | INIファイル入力/出力(C#/VB.NET)

このページのトップに戻る

コメント

名前
題名
メールアドレス
WEBサイト
 
コメント
パスワード
  管理者にだけ表示を許可する

このページのトップに戻る

トラックバック

このページのトップに戻る