NonSoft

環境設定(XML)ファイルを読込/保存する
サンプル(VB.NET)


 サンプル(ソース/コード)
環境設定ファイル(VB6のiniファイル相当)の読込/保存するサンプル(VB.NET)です。VB.NETでは通常XML
ファイルで実現するようです。環境設定ファイルが無いプログラムはあまり無いと思うので、プログラム
を作る最初の作業としてこの処理をコピペするようにすると思います。このサンプルで保存するファイル
はXML形式でシリアライズと言う方法を使用しています。

このサンプルは標準モジュールで作成しているのでクラスにした方が良いと思います。
このモジュールはPublic宣言している事に注意してください。

C#.NET版はこちら「環境設定ファイルを読込/保存するサンプル(C#.NET)」です。

★標準モジュール(Module1.vb)
Imports System.IO
Imports System.Text
Imports System.Xml.Serialization

Public Module Module1
    ''' <summary>
    ''' 環境設定データのフォルダ名
    ''' </summary>
    Private Const DEF_FLD As String = "Env"

    ''' <summary>
    ''' 環境設定データのファイル名
    ''' </summary>
    Private Const DEF_FIL As String = "EnvInfo.xml"

    ''' <summary>
    ''' 環境設定データ
    ''' </summary>
    ''' <remarks></remarks>
    Public Class EnvData
        ''' <summary>
        ''' 環境設定項目1
        ''' </summary>
        ''' <remarks></remarks>
        Public val1 As Integer = 123

        ''' <summary>
        ''' 環境設定項目2
        ''' </summary>
        ''' <remarks></remarks>
        Public val2 As String = "abc"
    End Class
    Public EnvDt As EnvData = New EnvData()

    ''' <summary>
    ''' 環境初期設定
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub EnvInitialize()

        ' 環境設定データの読込
        ReadEnv()
    End Sub

    ''' <summary>
    ''' 環境設定データのファイル保存
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub SaveEnv()
        Dim sw As StreamWriter = Nothing

        Try
            ' 環境設定ファイルのPATH設定
            Dim AppPath As String = System.AppDomain.CurrentDomain.BaseDirectory
            Dim SettingPath As String = AppPath & DEF_FLD & "\" & DEF_FIL

            ' 環境設定フォルダ作成
            If Directory.Exists(DEF_FLD) = False Then
                Directory.CreateDirectory(AppPath + DEF_FLD)
            End If

            ' 環境設定データ保存
            sw = New StreamWriter(SettingPath, False, Encoding.Default)
            Dim serializer As XmlSerializer = New XmlSerializer(GetType(EnvData))
            serializer.Serialize(sw, EnvDt)

        Catch ex As Exception
            System.Diagnostics.Debug.Write(ex)
        Finally
            If sw Is Nothing = False Then sw.Close()
        End Try
    End Sub

    ''' <summary>
    ''' 環境設定データのファイル読込
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub ReadEnv()
        Dim sr As StreamReader = Nothing

        Try
            ' 環境設定ファイルのPATH設定
            Dim AppPath As String = System.AppDomain.CurrentDomain.BaseDirectory
            Dim SettingPath As String = AppPath & DEF_FLD & "\" & DEF_FIL

            If File.Exists(SettingPath) Then
                ' 環境設定データ読込
                sr = New StreamReader(SettingPath, Encoding.Default)
                Dim serializer As XmlSerializer = New XmlSerializer(GetType(EnvData))
                EnvDt = CType(serializer.Deserialize(sr), EnvData)
            Else
                ' 環境設定ファイルが存在しない時は作成
                SaveEnv()
            End If

        Catch ex As Exception
            System.Diagnostics.Debug.Write(ex)
        Finally
            If sr Is Nothing = False Then sr.Close()
        End Try
    End Sub
End Module

★フォームモジュール(Form1.vb)
    Private Sub Form1_Load( _
        ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' 環境初期設定
        EnvInitialize()
        System.Diagnostics.Debug.WriteLine(EnvDt.val1)
        System.Diagnostics.Debug.WriteLine(EnvDt.val2)
    End Sub