ConfigFile.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Xml;
  7. using System.IO;
  8. using FileManager;
  9. namespace MeasureData
  10. {
  11. public class ConfigFile : ISlo
  12. {
  13. #region 内容
  14. public MeasureParam m_Config;
  15. #endregion
  16. public ConfigFile(MeasureParam mp)
  17. {
  18. this.m_Config = mp;
  19. }
  20. /// <summary>
  21. /// 创建XML文件
  22. /// </summary>
  23. /// <param name="filename">创建XML文件的全路径</param>
  24. /// <returns>0:失败;1:成功;2:文件已存在</returns>
  25. public int CreateXml(String filename)
  26. {
  27. if (!File.Exists(filename))
  28. {
  29. if (XmlManager.CreateXmlFile(filename))
  30. {
  31. return 1;
  32. }
  33. else
  34. {
  35. return 0;
  36. }
  37. }
  38. else
  39. {
  40. XmlManager.CreateXmlFile(filename);
  41. return 2;
  42. }
  43. }
  44. //保存
  45. public bool Save(String filename)
  46. {
  47. CreateXml(filename);
  48. XmlDocument doc = new XmlDocument();
  49. if (File.Exists(filename))
  50. {
  51. doc.Load(filename);//载入xml文件
  52. }
  53. else
  54. {
  55. return false; //当前路径不存在
  56. }
  57. XmlNode root = doc.SelectSingleNode("XMLData");
  58. Serialize(true, doc, root);
  59. doc.Save(filename);
  60. return true;
  61. }
  62. //读取
  63. public bool Read(String filename)
  64. {
  65. XmlDocument doc = new XmlDocument();
  66. if (File.Exists(filename))
  67. {
  68. doc.Load(filename);//载入xml文件
  69. }
  70. else
  71. {
  72. return false; //当前路径不存在
  73. }
  74. XmlNode root = doc.SelectSingleNode("XMLData");
  75. Serialize(false, doc, root);
  76. //doc.Save(filename);
  77. return true;
  78. }
  79. //XML文件保存
  80. //样品孔存储xml文档
  81. public override void Serialize(bool isStoring, XmlDocument xml, XmlNode rootNode)
  82. {
  83. Slo sFile = new Slo();
  84. xBool isPhotograph = new xBool();
  85. xBool ptDepostion = new xBool();
  86. isPhotograph.AssignValue(m_Config.Is_Photograph);
  87. ptDepostion.AssignValue(m_Config.PT);
  88. sFile.Register("Is_Photograph", isPhotograph);
  89. sFile.Register("PT_Depostion", ptDepostion);
  90. xString ptELYFile = new xString();
  91. xString fibELYFile = new xString();
  92. ptELYFile.AssignValue(m_Config.PTTemp);
  93. fibELYFile.AssignValue(m_Config.FIBTemp);
  94. sFile.Register("PT_ELYFile", ptELYFile);
  95. sFile.Register("FIB_ELYFile", fibELYFile);
  96. xDouble stretchMagnification = new xDouble();
  97. xDouble locationMagnification = new xDouble();
  98. xDouble locationVoltage = new xDouble();
  99. xDouble photographMagnification = new xDouble();
  100. xDouble photographVoltage = new xDouble();
  101. stretchMagnification.AssignValue(m_Config.Stretch_Magnification);
  102. locationMagnification.AssignValue(m_Config.Location_Magnification);
  103. locationVoltage.AssignValue(m_Config.Location_Voltage);
  104. photographMagnification.AssignValue(m_Config.Photograph_Magnification);
  105. photographVoltage.AssignValue(m_Config.Photograph_Voltage);
  106. sFile.Register("Strectch_Magnification", stretchMagnification);
  107. sFile.Register("Locatio_Magnification", locationMagnification);
  108. sFile.Register("Location_Voltage", locationVoltage);
  109. sFile.Register("Photograph_Magnification", photographMagnification);
  110. sFile.Register("Photograph_Voltage", photographVoltage);
  111. xDouble correctionAngle = new xDouble();
  112. correctionAngle.AssignValue(m_Config.Correction_Angle);
  113. sFile.Register("Correction_Angle", correctionAngle);
  114. xString sampleType = new xString();
  115. xString _firm = new xString();
  116. sampleType.AssignValue(m_Config.SampleName);
  117. _firm.AssignValue(m_Config.Firm);
  118. sFile.Register("Sample_Type", sampleType);
  119. sFile.Register("Firm", _firm);
  120. if (isStoring)
  121. {
  122. sFile.Serialize(true, xml, rootNode);
  123. }
  124. else
  125. {
  126. sFile.Serialize(false, xml, rootNode);
  127. m_Config.Is_Photograph = isPhotograph.value();
  128. m_Config.PT = ptDepostion.value();
  129. m_Config.PTTemp = ptELYFile.value();
  130. m_Config.FIBTemp = fibELYFile.value();
  131. m_Config.Stretch_Magnification = stretchMagnification.value();
  132. m_Config.Location_Magnification = locationMagnification.value();
  133. m_Config.Location_Voltage = locationVoltage.value();
  134. m_Config.Photograph_Magnification = photographMagnification.value();
  135. m_Config.Photograph_Voltage = photographVoltage.value();
  136. m_Config.Correction_Angle = correctionAngle.value();
  137. m_Config.SampleName = sampleType.value();
  138. m_Config.Firm = _firm.value();
  139. }
  140. }
  141. }
  142. }