掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
変数を指定した拡張子で保存するには (ID:79211)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
環境が明記していないので・・・ VB6でですか? VB.NETなら、こんな風にしたら出来ますが・・・ あくまでサンプルなので、ご利用の際には、必要な形に変更して お使い下さい。 尚、下記のものは、Win2000の場合、\WinNT\System32の中にファイルを 保存します。 ファイル名や拡張子も、ご自身で必要なものに変更して下さい。 以上。 Imports System.IO Imports System.Environment Public Structure TestIntegerData Public Data1 As Integer Public Data2 As Integer Public Data3 As Integer Public Data4 As Integer Public Data5 As Integer Public Data6 As Integer Public Data7 As Integer Public Data8 As Integer Public Data9 As Integer Public Data10 As Integer End Structure Public Structure TestIntegerArryData Public Data() As Integer Public Sub Initialize() ReDim Data(10) End Sub End Structure Public Structure TestStringData Public Data1 As String Public Data2 As String Public Data3 As String Public Data4 As String Public Data5 As String Public Data6 As String Public Data7 As String Public Data8 As String Public Data9 As String Public Data10 As String End Structure Public Structure TestStringArrayData Public Data() As String Public Sub Initialize() ReDim Data(10) End Sub End Structure Public Structure TestConfigData Public TestInteger As TestIntegerData Public TestString As TestStringData Public TestIntegerArray As TestIntegerArryData Public TestStringArray As TestStringArrayData Public Sub Initialize() Call TestIntegerArray.Initialize() Call TestStringArray.Initialize() End Sub End Structure Module Module1 Public Sub Main() Dim TestData As TestConfigData Call TestData.Initialize() Call LoadConfigData(TestData) TestData.TestInteger.Data1 = 10 TestData.TestInteger.Data2 = 11 TestData.TestInteger.Data3 = 12 TestData.TestInteger.Data4 = 13 TestData.TestInteger.Data5 = 14 TestData.TestInteger.Data6 = 15 TestData.TestInteger.Data7 = 16 TestData.TestInteger.Data8 = 17 TestData.TestInteger.Data9 = 18 TestData.TestInteger.Data10 = 19 TestData.TestIntegerArray.Data(0) = 10 TestData.TestIntegerArray.Data(1) = 11 TestData.TestIntegerArray.Data(2) = 12 TestData.TestIntegerArray.Data(3) = 13 TestData.TestIntegerArray.Data(4) = 14 TestData.TestIntegerArray.Data(5) = 15 TestData.TestIntegerArray.Data(6) = 16 TestData.TestIntegerArray.Data(7) = 17 TestData.TestIntegerArray.Data(8) = 18 TestData.TestIntegerArray.Data(9) = 19 TestData.TestString.Data1 = "10" TestData.TestString.Data2 = "11" TestData.TestString.Data3 = "12" TestData.TestString.Data4 = "13" TestData.TestString.Data5 = "14" TestData.TestString.Data6 = "15" TestData.TestString.Data7 = "16" TestData.TestString.Data8 = "17" TestData.TestString.Data9 = "18" TestData.TestString.Data10 = "19" TestData.TestStringArray.Data(0) = "10" TestData.TestStringArray.Data(1) = "11" TestData.TestStringArray.Data(2) = "12" TestData.TestStringArray.Data(3) = "13" TestData.TestStringArray.Data(4) = "14" TestData.TestStringArray.Data(5) = "15" TestData.TestStringArray.Data(6) = "16" TestData.TestStringArray.Data(7) = "17" TestData.TestStringArray.Data(8) = "18" TestData.TestStringArray.Data(9) = "19" Call SaveConfigData(TestData) End End Sub Public Sub LoadConfigData(ByRef dtTest As TestConfigData) Dim bRet As Boolean 'シリアル化する追加のオブジェクト型のType配列を作成 Dim et() As Type = New Type() {GetType(TestConfigData)} '保存した内容を復元 Dim serializer1 As New System.Xml.Serialization.XmlSerializer(GetType(TestConfigData), et) Dim fs As IO.FileStream Try ' EXEと同じパスの場合 fs = New IO.FileStream(Environment.GetFolderPath(SpecialFolder.System) & "\TestData.xml", IO.FileMode.Open) 'fs = New IO.FileStream(Application.StartupPath & "\TestData.xml", IO.FileMode.Open) Catch ex As Exception ' 初めてロードする場合、保存ファイルが無いので、ここで初期化して保存させる Call dtTest.Initialize() dtTest.TestInteger.Data1 = 0 dtTest.TestInteger.Data2 = 1 dtTest.TestInteger.Data3 = 2 dtTest.TestInteger.Data4 = 3 dtTest.TestInteger.Data5 = 4 dtTest.TestInteger.Data6 = 5 dtTest.TestInteger.Data7 = 6 dtTest.TestInteger.Data8 = 7 dtTest.TestInteger.Data9 = 8 dtTest.TestInteger.Data10 = 9 dtTest.TestIntegerArray.Data(0) = 0 dtTest.TestIntegerArray.Data(1) = 1 dtTest.TestIntegerArray.Data(2) = 2 dtTest.TestIntegerArray.Data(3) = 3 dtTest.TestIntegerArray.Data(4) = 4 dtTest.TestIntegerArray.Data(5) = 5 dtTest.TestIntegerArray.Data(6) = 6 dtTest.TestIntegerArray.Data(7) = 7 dtTest.TestIntegerArray.Data(8) = 8 dtTest.TestIntegerArray.Data(9) = 9 dtTest.TestString.Data1 = "0" dtTest.TestString.Data2 = "1" dtTest.TestString.Data3 = "2" dtTest.TestString.Data4 = "3" dtTest.TestString.Data5 = "4" dtTest.TestString.Data6 = "5" dtTest.TestString.Data7 = "6" dtTest.TestString.Data8 = "7" dtTest.TestString.Data9 = "8" dtTest.TestString.Data10 = "9" dtTest.TestStringArray.Data(0) = "0" dtTest.TestStringArray.Data(1) = "1" dtTest.TestStringArray.Data(2) = "2" dtTest.TestStringArray.Data(3) = "3" dtTest.TestStringArray.Data(4) = "4" dtTest.TestStringArray.Data(5) = "5" dtTest.TestStringArray.Data(6) = "6" dtTest.TestStringArray.Data(7) = "7" dtTest.TestStringArray.Data(8) = "8" dtTest.TestStringArray.Data(9) = "9" Call SaveConfigData(dtTest) fs = New IO.FileStream(Environment.GetFolderPath(SpecialFolder.System) & "\TestData.xml", IO.FileMode.Open) ' EXEと同じパスの場合 'fs = New IO.FileStream(Application.StartupPath & "\TestData.xml", IO.FileMode.Open) Finally dtTest = serializer1.Deserialize(fs) End Try fs.Close() End Sub Public Sub SaveConfigData(ByRef dtConfig As TestConfigData) 'シリアル化する追加のオブジェクト型のType配列を作成 Dim et() As Type = New Type() {GetType(TestConfigData)} 'XMLファイルに保存 Dim serializer1 As New System.Xml.Serialization.XmlSerializer(GetType(TestConfigData), et) Dim fs As IO.FileStream Try fs = New IO.FileStream(Environment.GetFolderPath(SpecialFolder.System) & "\TestData.xml", IO.FileMode.Create) ' EXEと同じパスの場合 'fs = New IO.FileStream(Application.StartupPath & "\TestData.xml", IO.FileMode.Create) Catch ex As Exception Dim fi As FileInfo fi = New FileInfo(Environment.GetFolderPath(SpecialFolder.System) & "\TestData.xml") ' EXEと同じパスの場合 'fi = New FileInfo(Application.StartupPath & "\TestData.xml") fi.Delete() fs = New IO.FileStream(Environment.GetFolderPath(SpecialFolder.System) & "\TestData.xml", IO.FileMode.Create) ' EXEと同じパスの場合 'fs = New IO.FileStream(Application.StartupPath & "\TestData.xml", IO.FileMode.Create) Finally serializer1.Serialize(fs, dtConfig) End Try fs.Close() End Sub End Module
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.