前田稔(Maeda Minoru)の超初心者のプログラム入門
ファイル名 | 説明 |
---|---|
SeisekiXml.cpp | 成績データ XML を作成 |
SeisekiLoad.cpp | 成績データを表示 |
[XmlRoot("成績管理")] public ref class SeisekiClass { public: [XmlElement("成績表")] array<SeisekiData^>:^ Sdata; }; |
[XmlRoot("成績表")] public ref class SeisekiData { public: [XmlElement("番号")] int Number; [XmlElement("姓名")] NameCls^ Name; [XmlElement("科目")] KamokuCls^ Kamoku; ・・・ SeisekiData(int num, String^ sei, String ^mei, int ten1, int ten2, int ten3) { ・・・ } } |
public ref class NameCls { public: [XmlElement("姓")] String^ Sei; [XmlElement("名")] String^ Mei; }; |
public ref class KamokuCls { public: [XmlElement("数学")] int Ten1; [XmlElement("英語")] int Ten2; [XmlElement("C言語")] int Ten3; }; |
array<int>^ num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; array<String^>^ sei = { "愛知", "青森", "秋田", "石川", "茨城", "岩手", "愛媛", "大分", "大阪", "岡山" }; array<String^>^ mei = { "真唯子", "孝雄", "景子", "雅夫", "優子", "あゆみ", "和子", "慎吾", "恵", "英子" }; array<int>^ ten1 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 }; array<int>^ ten2 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 }; array<int>^ ten3 = { 100, 0, 10, 20, 30, 40, 50, 60, 70, 80 }; |
SeisekiClass^ target = gcnew SeisekiClass(); target->Sdata = gcnew array<SeisekiData^>(10); SeisekiData^ tmp; for(int i = 0; i < 10; i++) { tmp = gcnew SeisekiData(num[i],sei[i],mei[i],ten1[i],ten2[i],ten3[i]); target->Sdata[i] = tmp; } |
//XMLファイルに保存する XmlSerializer^ serializer = gcnew XmlSerializer(SeisekiClass::typeid); FileStream^ fs = gcnew FileStream("c:\\tmp\\config.xml", FileMode::Create); serializer->Serialize(fs, target); fs->Close(); |
public ref class NameCls { public: [XmlElement("姓")] String^ Sei; [XmlElement("名")] String^ Mei; }; public ref class KamokuCls { public: [XmlElement("C言語")] int Ten3; }; [XmlRoot("成績表")] public ref class SeisekiData { public: [XmlElement("姓名")] NameCls^ Name; [XmlElement("科目")] KamokuCls^ Kamoku; }; [XmlRoot("成績管理")] public ref class SeisekiClass { public: [XmlElement("成績表")] array<SeisekiData^>^ Sdata; }; |
XmlSerializer^ serializer = gcnew XmlSerializer(SeisekiClass::typeid); FileStream^ fs = gcnew FileStream("c:\\tmp\\config.xml", FileMode::Open); SeisekiClass^ target = (SeisekiClass^)serializer->Deserialize(fs); fs->Close(); |
for(int i=0; i<10; i++) { Console::Write(target->Sdata[i]->Name->Sei + target->Sdata[i]->Name->Mei); Console::WriteLine(" : " + target->Sdata[i]->Kamoku->Ten3); } |