前田稔(Maeda Minoru)の超初心者のプログラム入門
/************************************************/ /*★ @"C:\test\seiseki.xml" を作成 前田 稔 ★*/ /************************************************/ using System; using System.Xml.Serialization; public class MyForm { [XmlRoot("成績管理")] public class SeisekiClass { [System.Xml.Serialization.XmlElement("成績表")] public SeisekiData[] array; } [XmlRoot("成績表")] public class SeisekiData { [XmlElement("番号")] public int Number; [XmlElement("姓名")] public NameCls Name; [XmlElement("科目")] public KamokuCls Kamoku; //Constructor public SeisekiData() { } public SeisekiData(int num, string sei, string mei, int ten1, int ten2, int ten3) { Name = new NameCls(); Kamoku = new KamokuCls(); Number = num; Name.Sei = sei; Name.Mei = mei; Kamoku.Ten1 = ten1; Kamoku.Ten2 = ten2; Kamoku.Ten3 = ten3; } } public class NameCls { [XmlElement("姓")] public string Sei; [XmlElement("名")] public string Mei; } public class KamokuCls { [XmlElement("数学")] public int Ten1; [XmlElement("英語")] public int Ten2; [XmlElement("C言語")] public int Ten3; } static int[] num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; static string[] sei = { "愛知", "青森", "秋田", "石川", "茨城", "岩手", "愛媛", "大分", "大阪", "岡山" }; static string[] mei = { "真唯子", "孝雄", "景子", "雅夫", "優子", "あゆみ", "和子", "慎吾", "恵", "英子" }; static int[] ten1 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 }; static int[] ten2 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 }; static int[] ten3 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 }; public static void Main() { SeisekiClass target = new SeisekiClass(); target.array = new SeisekiData[10]; SeisekiData tmp; for(int i = 0; i < 10; i++) { tmp = new SeisekiData(num[i],sei[i],mei[i],ten1[i],ten2[i],ten3[i]); target.array[i] = tmp; } //XMLファイルに保存する System.Xml.Serialization.XmlSerializer serializer1 = new System.Xml.Serialization.XmlSerializer(typeof(SeisekiClass)); System.IO.FileStream fs1 = new System.IO.FileStream(@"C:\test\seiseki.xml", System.IO.FileMode.Create); serializer1.Serialize(fs1, target); fs1.Close(); } } |
[XmlRoot("成績管理")] public class SeisekiClass { [System.Xml.Serialization.XmlElement("成績表")] public SeisekiData[] array; } |
[XmlRoot("成績表")] public class SeisekiData { [XmlElement("番号")] public int Number; [XmlElement("姓名")] public NameCls Name; [XmlElement("科目")] public KamokuCls Kamoku; //Constructor public SeisekiData() { } public SeisekiData(int num, string sei, string mei, int ten1, int ten2, int ten3) { ・・・ } } |
public class NameCls { [XmlElement("姓")] public string Sei; [XmlElement("名")] public string Mei; } |
public class KamokuCls { [XmlElement("数学")] public int Ten1; [XmlElement("英語")] public int Ten2; [XmlElement("C言語")] public int Ten3; } |
static int[] num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; static string[] sei = { "愛知", "青森", "秋田", "石川", "茨城", "岩手", "愛媛", "大分", "大阪", "岡山" }; static string[] mei = { "真唯子", "孝雄", "景子", "雅夫", "優子", "あゆみ", "和子", "慎吾", "恵", "英子" }; static int[] ten1 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 }; static int[] ten2 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 }; static int[] ten3 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 }; |
SeisekiClass target = new SeisekiClass(); target.array = new SeisekiData[10]; SeisekiData tmp; for(int i = 0; i < 10; i++) { tmp = new SeisekiData(num[i],sei[i],mei[i],ten1[i],ten2[i],ten3[i]); target.array[i] = tmp; } |
//XMLファイルに保存する System.Xml.Serialization.XmlSerializer serializer1 = new System.Xml.Serialization.XmlSerializer(typeof(SeisekiClass)); System.IO.FileStream fs1 = new System.IO.FileStream(@"C:\test\seiseki.xml", System.IO.FileMode.Create); serializer1.Serialize(fs1, target); fs1.Close(); |
[XmlRoot("成績表")] public class SeisekiData { [XmlElement("番号")] public int Number; [XmlElement("姓名")] public NameCls Name = new NameCls(); [XmlElement("科目")] public KamokuCls Kamoku = new KamokuCls(); ・・・ |
/**********************************************/ /*★ XML から姓名とC言語を表示 前田 稔 ★*/ /**********************************************/ using System; using System.Xml.Serialization; public class MyForm { [XmlRoot("成績管理")] public class SeisekiClass { [System.Xml.Serialization.XmlElement("成績表")] public SeisekiData[] array = new SeisekiData[10]; } [XmlRoot("成績表")] public class SeisekiData { [XmlElement("姓名")] public NameCls Name; [XmlElement("科目")] public KamokuCls Kamoku; } public class NameCls { [XmlElement("姓")] public string Sei; [XmlElement("名")] public string Mei; } public class KamokuCls { [XmlElement("C言語")] public int Ten3; } public static void Main() { //保存した内容を復元する System.Xml.Serialization.XmlSerializer serializer2 = new System.Xml.Serialization.XmlSerializer(typeof(SeisekiClass)); System.IO.FileStream fs = new System.IO.FileStream(@"C:\test\seiseki.xml", System.IO.FileMode.Open); SeisekiClass loadcls; loadcls = (SeisekiClass) serializer2.Deserialize(fs); fs.Close(); //復元した内容を表示する foreach(SeisekiData obj in loadcls.array) { Console.WriteLine(obj.Name.Sei + obj.Name.Mei + obj.Kamoku.Ten3); } } } |
[XmlRoot("成績管理")] public class SeisekiClass { [System.Xml.Serialization.XmlElement("成績表")] public SeisekiData[] array = new SeisekiData[10]; } [XmlRoot("成績表")] public class SeisekiData { [XmlElement("姓名")] public NameCls Name; [XmlElement("科目")] public KamokuCls Kamoku; } public class NameCls { [XmlElement("姓")] public string Sei; [XmlElement("名")] public string Mei; } public class KamokuCls { [XmlElement("C言語")] public int Ten3; } |
//保存した内容を復元する System.Xml.Serialization.XmlSerializer serializer2 = new System.Xml.Serialization.XmlSerializer(typeof(SeisekiClass)); System.IO.FileStream fs = new System.IO.FileStream(@"C:\test\seiseki.xml", System.IO.FileMode.Open); SeisekiClass loadcls; loadcls = (SeisekiClass) serializer2.Deserialize(fs); fs.Close(); |
//復元した内容を表示する foreach(SeisekiData obj in loadcls.array) { Console.WriteLine(obj.Name.Sei + obj.Name.Mei + obj.Kamoku.Ten3); } |