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

|
環境設定ファイル(VB6のiniファイル相当)の読込/保存するサンプル(VB.NET)です。VB.NETでは通常XML
ファイルで実現するようです。環境設定ファイルが無いプログラムはあまり無いと思うので、プログラム
を作る最初の作業としてこの処理をコピペするようにすると思います。このサンプルで保存するファイル
はXML形式でシリアライズと言う方法を使用しています。
このサンプルは標準モジュールで作成しているのでクラスにした方が良いと思います。
また、このモジュールはPublic宣言している事に注意してください。
★標準モジュール(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