ElementSubscript.cs 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. using OTSRptPeriodicTable;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace OTSIncAReportApp._1_UI
  8. {
  9. public class ElementSubscript
  10. {
  11. List<subscript> subscripts = GetListsubscript();
  12. private static List<subscript> GetListsubscript()
  13. {
  14. List<subscript> List_subscript = new List<subscript>();
  15. subscript ls_subscript = new subscript();
  16. ls_subscript = new subscript();
  17. ls_subscript.Name = "0";
  18. ls_subscript.NumEntity = "&#8320";
  19. ls_subscript.HexEntity = "\x2080";
  20. ls_subscript.CharactrName = "SUBSCRIPT ZERO";
  21. List_subscript.Add(ls_subscript);
  22. ls_subscript = new subscript();
  23. ls_subscript.Name = "1";
  24. ls_subscript.NumEntity = "&#8321";
  25. ls_subscript.HexEntity = "\x2081";
  26. ls_subscript.CharactrName = "SUBSCRIPT ONE";
  27. List_subscript.Add(ls_subscript);
  28. ls_subscript = new subscript();
  29. ls_subscript.Name = "2";
  30. ls_subscript.NumEntity = "&#8322";
  31. ls_subscript.HexEntity = "\x2082";
  32. ls_subscript.CharactrName = "SUBSCRIPT TWO";
  33. List_subscript.Add(ls_subscript);
  34. ls_subscript = new subscript();
  35. ls_subscript.Name = "3";
  36. ls_subscript.NumEntity = "&#8323";
  37. ls_subscript.HexEntity = "\x2083";
  38. ls_subscript.CharactrName = "SUBSCRIPT THREE";
  39. List_subscript.Add(ls_subscript);
  40. ls_subscript = new subscript();
  41. ls_subscript.Name = "4";
  42. ls_subscript.NumEntity = "&#8324";
  43. ls_subscript.HexEntity = "\x2084";
  44. ls_subscript.CharactrName = "SUBSCRIPT FOUR";
  45. List_subscript.Add(ls_subscript);
  46. ls_subscript = new subscript();
  47. ls_subscript.Name = "5";
  48. ls_subscript.NumEntity = "&#8325";
  49. ls_subscript.HexEntity = "\x2085";
  50. ls_subscript.CharactrName = "SUBSCRIPT FIVE";
  51. List_subscript.Add(ls_subscript);
  52. ls_subscript = new subscript();
  53. ls_subscript.Name = "6";
  54. ls_subscript.NumEntity = "&#8326";
  55. ls_subscript.HexEntity = "\x2086";
  56. ls_subscript.CharactrName = "SUBSCRIPT SIX";
  57. List_subscript.Add(ls_subscript);
  58. ls_subscript = new subscript();
  59. ls_subscript.Name = "7";
  60. ls_subscript.NumEntity = "&#8327";
  61. ls_subscript.HexEntity = "\x2087";
  62. ls_subscript.CharactrName = "SUBSCRIPT SEVEN";
  63. List_subscript.Add(ls_subscript);
  64. ls_subscript = new subscript();
  65. ls_subscript.Name = "8";
  66. ls_subscript.NumEntity = "&#8328";
  67. ls_subscript.HexEntity = "\x2088";
  68. ls_subscript.CharactrName = "SUBSCRIPT EIGHT";
  69. List_subscript.Add(ls_subscript);
  70. ls_subscript = new subscript();
  71. ls_subscript.Name = "9";
  72. ls_subscript.NumEntity = "&#8329";
  73. ls_subscript.HexEntity = "\x2089";
  74. ls_subscript.CharactrName = "SUBSCRIPT NINE";
  75. List_subscript.Add(ls_subscript);
  76. return List_subscript;
  77. }
  78. /// <summary>
  79. /// 将数字转换成下标转义符
  80. /// </summary>
  81. /// <param name="str"></param>
  82. /// <returns></returns>
  83. private string Getsubscript(string str)
  84. {
  85. if (subscripts.Count==0)
  86. {
  87. subscripts = GetListsubscript();
  88. }
  89. for (int i=0;i< subscripts.Count;i++)
  90. {
  91. if (subscripts[i].Name==str)
  92. {
  93. return subscripts[i].HexEntity;
  94. }
  95. }
  96. return "";
  97. }
  98. public string Getsubscriptstring(string str)
  99. {
  100. string[] strarray = str.Split('-');
  101. string strSubscript = "";
  102. for (int j=0;j< strarray.Length;j++)
  103. {
  104. char[] strCharArr = strarray[j].ToCharArray();
  105. string Escape = "";
  106. for (int i = 0; i < strCharArr.Length; i++)
  107. {
  108. if (i < 2)
  109. {
  110. Escape = Escape + strCharArr[i];
  111. continue;
  112. }
  113. else
  114. {
  115. if (System.Text.RegularExpressions.Regex.IsMatch(strCharArr[i].ToString(), @"^[+-]?\d*[.]?\d*$"))
  116. {
  117. Escape = Escape + Getsubscript(strCharArr[i].ToString());
  118. }
  119. else
  120. {
  121. Escape = Escape + strCharArr[i];
  122. }
  123. }
  124. }
  125. strSubscript = strSubscript + Escape+"-";
  126. }
  127. string[] vs = strSubscript.Split('-');
  128. string output = "";
  129. if (vs.Length>2)
  130. {
  131. for (int i = 0; i < vs.Length - 1; i++)
  132. {
  133. if (i == vs.Length - 2)
  134. {
  135. output = output + vs[i].ToString();
  136. }
  137. else
  138. {
  139. output = output + vs[i].ToString() + "-";
  140. }
  141. }
  142. }
  143. else
  144. {
  145. for (int i = 0; i < vs.Length - 1; i++)
  146. {
  147. output = output + vs[i].ToString();
  148. }
  149. }
  150. return output;
  151. }
  152. }
  153. public class subscript
  154. {
  155. string _Name;//正常显示字符
  156. string _NumEntity;//
  157. string _HexEntity;//十六进制
  158. string _CharactrName;
  159. public string Name
  160. {
  161. get { return _Name; }
  162. set { _Name = value; }
  163. }
  164. public string NumEntity
  165. {
  166. get { return _NumEntity; }
  167. set { _NumEntity = value; }
  168. }
  169. public string HexEntity
  170. {
  171. get { return _HexEntity; }
  172. set { _HexEntity = value; }
  173. }
  174. public string CharactrName
  175. {
  176. get { return _CharactrName; }
  177. set { _CharactrName = value; }
  178. }
  179. }
  180. }