設定ファイルにINIをやめてXMLにする
INIファイルに慣れすぎて「今更、XMLなんて・・・」と思ってたけど勉強がてら設定ファイルをXMLにしてみる。
次のINIファイルを
[AlarmSetting] OutputTime = 30 Temperature1_Output = True Temperature1_HiHiValue = 98.0 Temperature1_HiValue = 95.0 Temperature1_LoValue = 85.0 Temperature1_LoLoValue = 82.0 Temperature2_Output = True Temperature2_HiHiValue = 80.0 Temperature2_HiValue = 78.0 Temperature2_LoValue = 70.0 Temperature2_LoLoValue = 68.0
このようなXMLファイルにする
保存はUTF-8(BOM付)
<?xml version="1.0" encoding="utf-8"?> <AlarmWatch> <AlarmSetting> <OutputTime>30</OutputTime> <Temperature1> <Output>True</Output> <HiHiValue>98.0</HiHiValue> <HiValue>95.0</HiValue> <LoValue>85.0</LoValue> <LoLoValue>82.0</LoLoValue> </Temperature1> <Temperature2> <Output>True</Output> <HiHiValue>80.0</HiHiValue> <HiValue>78.0</HiValue> <LoValue>70.0</LoValue> <LoLoValue>68.0</LoLoValue> </Temperature2> </AlarmSetting> </AlarmWatch>
これをプログラムで読み書きする。
Dim path As String = "C:\AlarmWatch\AlarmWatch.xml" Dim xdoc As XDocument = XDocument.Load(path) '色々な読み込み Dim value1 As Integer = xdoc.<AlarmWatch>.<AlarmSetting>.<OutputTime>.Value Dim value2 As Boolean = xdoc.<AlarmWatch>.<AlarmSetting>.<Temperature1>.<Output>.Value Dim elm3 = xdoc.<AlarmWatch>.<AlarmSetting>.<Temperature1>.<HiHiValue> Dim value3 As Integer = elm3.Value Dim value4 As Integer = xdoc.Element("AlarmWatch").Element("AlarmSetting").Element("Temperature1").Element("HiValue").Value Dim elm5 As XElement = xdoc.Element("AlarmWatch").Element("AlarmSetting").Element("Temperature1") Dim value5 As Integer = elm5.Element("LoValue").Value '色々な書き込み xdoc.<AlarmWatch>.<AlarmSetting>.<OutputTime>.Value = 25 Dim elm6 = xdoc.<AlarmWatch>.<AlarmSetting>.<Temperature1>.<HiHiValue> elm6.Value = 98.5 xdoc.Element("AlarmWatch").Element("AlarmSetting").Element("Temperature1").Element("LoValue").Value = 80.0 '保存 xdoc.Save(path)