Back to Top

プログラムの覚書

Category: VB.NET

VB.NET

VB.NET ClassをXMLファイルに読み書きする

ClassをXML形式で、ファイルに書き込むまたは、読み込む方法を記載します。

読み書きするClassの例

Public Class Parameter
    Public val1 As String
    Public val2 As Double
    Public val3 As Integer
End Class

ClassをXMLファイルに書き込む

Dim FilePath As String = "C:\work\myfile.xml"

Dim prm As Parameter = New Parameter()
prm.val1 = "AAAAAAAAAAA"
prm.val2 = 20.1
prm.val3 = 10

Using sw As IO.StreamWriter = New IO.StreamWriter(FilePath, False, System.Text.Encoding.Default)
    Dim serializer As Xml.Serialization.XmlSerializer = New Xml.Serialization.XmlSerializer(prm.GetType())
    serializer.Serialize(sw, prm)
End Using

 

XMLファイルをClassに読み込む

Dim FilePath As String = "C:\work\myfile.xml"

Dim prm As Parameter = New Parameter()
If IO.File.Exists(FilePath) Then
    Using sr As IO.StreamReader = New IO.StreamReader(FilePath, System.Text.Encoding.Default)
        Dim serializer As Xml.Serialization.XmlSerializer = New Xml.Serialization.XmlSerializer(prm.GetType())
        prm = serializer.Deserialize(sr)
    End Using
End If

 

VB.NET シーケンシャルファイルの読み込み・書き込み

シーケンシャルファイルの読み込み、書き込みについて記載します。

シーケンシャルファイルは、通常テキストファイルなのでテキストファイルの読み込み、書き込み、と同じようなものです。

以下には、昔ながらのファイル番号を使用して、ファイルをオープンし処理する方法を記載します。

シーケンシャルファイルを読み込む

Dim dtList As List(Of String) = New List(Of String)

Dim FilePath As String = "C:\work\mysfile.txt"

Dim FileNo As Integer = FileSystem.FreeFile
FileSystem.FileOpen(FileNo, FilePath, OpenMode.Input)

Dim s As String = ""
Do While (Not FileSystem.EOF(FileNo))
    FileSystem.Input(FileNo, s)
    dtList.Add(s)
Loop

FileSystem.FileClose(FileNo)

 

シーケンシャルファイルを書き込む

Dim dtList As List(Of String) = New List(Of String)
dtList.Add("AAA")
dtList.Add("BBB")
dtList.Add("CCC")
Dim FilePath2 As String = "C:\work\mysfile2.txt"

Dim FileNo2 As Integer = FileSystem.FreeFile
FileSystem.FileOpen(FileNo2, FilePath2, OpenMode.Output)

For Each s2 As String In dtList
    FileSystem.PrintLine(FileNo2, s2)
Next

FileSystem.FileClose(FileNo2)