using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; namespace LP; public class FuXian { public readonly double[,] data = null; public readonly double[] bw = new double[2] { 1.14148986513825, 9.65598579731003 }; public string mFName_file = "FuXian\\file_1.txt"; public string mFName_data = "FuXian\\data_1.txt"; public string mFName_out = "FuXian\\data_out.txt"; public int mCurveNo; public int mNumHead; public int mNumTail; public double mShuiPing; public int m0FanJi_1RaoJi; public List arrHead = null; public List arrTail = null; public List arrFanJi = null; public List arrRaoJi = null; public List mListHead = null; public List mListNum = null; public double mSearchFanJi; public double mSearchRaoJi; public FuXian() { mCurveNo = 1; mNumHead = 1; mNumTail = 1; mShuiPing = 10.0; m0FanJi_1RaoJi = 0; if (data == null) { data = new double[97, 2] { { 2.5446625, 71.94915 }, { 3.878075, 45.71697 }, { 5.2919, 36.68912 }, { 2.2, 35.016475 }, { 5.2623375, 53.46354 }, { 0.5975, 69.55 }, { 8.6125, 40.043055 }, { 1.0364225, 59.31549 }, { 2.2287375, 68.80835 }, { 6.3, 88.8407 }, { 6.3791875, 45.053385 }, { 38.3205, 75.1023 }, { 2.770925, 86.41685 }, { 0.78666, 43.69612 }, { 1.9475375, 64.02136 }, { 6.43745, 47.88732 }, { 2.1827875, 64.6113 }, { 5.878075, 62.836475 }, { 0.94157125, 45.493045 }, { 8.7521625, 45.177535 }, { 1.381825, 67.2178 }, { 5.39025, 73.2563 }, { 3.5, 31.135 }, { 11.3375, 14.495 }, { 4.1772125, 100.8358 }, { 41.0 / 160.0, 79.7992 }, { 3.625, 92.95 }, { 6.9187875, 57.616195 }, { 0.904215, 55.79496 }, { 2.925, 86.0249 }, { 2.1625, 67.3465 }, { 0.055375, 71.3609 }, { 3.52085, 55.69681 }, { 1.55, 77.29865 }, { 9.1396125, 36.816325 }, { 1.811025, 86.48445 }, { 9.5971875, 46.126925 }, { 1.9967875, 62.300745 }, { 1.7409625, 40.6081 }, { 9.5375, 49.27 }, { 6.258875, 83.8786 }, { 0.80435625, 83.265 }, { 13.94925, 128.91645 }, { 2.077225, 79.781 }, { 10.8873375, 34.65475 }, { 11.65, 33.865 }, { 5.142125, 46.79155 }, { 1.832, 87.789 }, { 1.29575, 63.037325 }, { 1.9125, 57.2 }, { 2.4490625, 44.61132 }, { 3.968625, 69.64555 }, { 3.0873375, 44.872295 }, { 3.4136625, 67.834 }, { 2.452875, 75.61905 }, { 2.3944875, 77.82255 }, { 2.085875, 78.06955 }, { 3.0885625, 78.0 }, { 3.5739625, 66.1076 }, { 2.4911625, 80.22755 }, { 7.2521875, 56.4239 }, { 0.95733125, 85.36125 }, { 4.85, 72.54 }, { 3.3823375, 50.460345 }, { 1.6570625, 77.883 }, { 5.9302875, 83.36445 }, { 19.0, 82.68 }, { 2.2402125, 83.1415 }, { 2.28455, 77.97725 }, { 1.645225, 86.0925 }, { 12.625, 33.8 }, { 2.5478, 62.411375 }, { 6.5173125, 57.049395 }, { 10.671875, 37.177335 }, { 2.9472375, 55.92483 }, { 2.9691, 50.966825 }, { 9.0238125, 17.03364 }, { 5.9496, 32.13704 }, { 1.12263, 54.11705 }, { 2.6329625, 66.84535 }, { 2.23485, 64.15552 }, { 1.3868625, 73.6411 }, { 5.175, 76.284 }, { 4.9095375, 31.97792 }, { 5.8178125, 68.0498 }, { 2.4029375, 18.073835 }, { 3.200375, 56.467645 }, { 11.185225, 84.01835 }, { 5.362175, 37.23395 }, { 4.804875, 53.678495 }, { 6.351875, 65.56745 }, { 3.094075, 78.03315 }, { 1.520025, 74.08245 }, { 2.7534, 79.118 }, { 3.2919125, 65.1573 }, { 3.2234875, 76.882 }, { 3.87235, 76.0526 } }; } if (arrHead == null) { arrHead = new List(); } if (arrTail == null) { arrTail = new List(); } if (arrFanJi == null) { arrFanJi = new List(); } if (arrRaoJi == null) { arrRaoJi = new List(); } arrHead.Clear(); arrTail.Clear(); arrFanJi.Clear(); arrRaoJi.Clear(); if (mListHead == null) { mListHead = new List(); } if (mListNum == null) { mListNum = new List(); } mListHead.Clear(); mListNum.Clear(); } public void Destroy() { if (arrHead != null) { arrHead.Clear(); } arrHead = null; if (arrTail != null) { arrTail.Clear(); } arrTail = null; if (arrFanJi != null) { arrFanJi.Clear(); } arrFanJi = null; if (arrRaoJi != null) { arrRaoJi.Clear(); } arrRaoJi = null; } public string ReadFileData() { string result = "OK"; int num = 0; if (!File.Exists(mFName_file)) { return "文件未找到(" + mFName_file + ") ReadFileData()"; } using (FileStream fileStream = new FileStream(mFName_file, FileMode.Open, FileAccess.Read, FileShare.None)) { using (StreamReader streamReader = new StreamReader(fileStream, Encoding.UTF8)) { while (!streamReader.EndOfStream) { string value = streamReader.ReadLine().Trim(); if (string.IsNullOrEmpty(value)) { continue; } double num2; try { num2 = Convert.ToDouble(value); } catch (Exception) { num2 = -1.0; } if (!(num2 < 0.0)) { num++; switch (num) { case 1: mCurveNo = (int)num2; break; case 2: mNumHead = (int)num2; break; case 3: mNumTail = (int)num2; break; case 4: mShuiPing = num2; break; case 5: m0FanJi_1RaoJi = (int)num2; break; } } } if (mCurveNo < 1) { mCurveNo = 1; } if (mCurveNo > 3) { mCurveNo = 3; } if (m0FanJi_1RaoJi > 1) { m0FanJi_1RaoJi = 1; } streamReader.Close(); } fileStream.Close(); } if (!File.Exists(mFName_data)) { return "文件未找到(" + mFName_data + ") ReadFileData()"; } arrHead.Clear(); arrTail.Clear(); arrFanJi.Clear(); arrRaoJi.Clear(); string[] separator = new string[4] { "\r", "\n", " ", "\t" }; string[] array = null; using (FileStream fileStream2 = new FileStream(mFName_data, FileMode.Open, FileAccess.Read, FileShare.None)) { using (StreamReader streamReader2 = new StreamReader(fileStream2, Encoding.UTF8)) { while (!streamReader2.EndOfStream) { string value = streamReader2.ReadLine(); if (string.IsNullOrEmpty(value)) { continue; } array = value.Split(separator, StringSplitOptions.RemoveEmptyEntries); if (array.Length >= 4) { double num2; try { num2 = Convert.ToDouble(array[0]); } catch (Exception) { num2 = -1.0; } arrHead.Add(num2); try { num2 = Convert.ToDouble(array[1]); } catch (Exception) { num2 = -1.0; } arrTail.Add(num2); try { num2 = Convert.ToDouble(array[2]); } catch (Exception) { num2 = -1.0; } arrFanJi.Add(num2); try { num2 = Convert.ToDouble(array[3]); } catch (Exception) { num2 = -1.0; } arrRaoJi.Add(num2); } } streamReader2.Close(); } fileStream2.Close(); } if (arrHead.Count <= 1) { return result; } int num3 = 0; for (int i = 0; i < arrHead.Count; i++) { for (int j = i + 1; j < arrHead.Count; j++) { if (!(arrHead[i] + 0.0001 < arrHead[j]) && (!(Math.Abs(arrHead[i] - arrHead[j]) < 0.0001) || !(arrTail[i] + 0.0001 < arrTail[j]))) { double num2 = arrHead[i]; arrHead[i] = arrHead[j]; arrHead[j] = num2; num2 = arrTail[i]; arrTail[i] = arrTail[j]; arrTail[j] = num2; num2 = arrFanJi[i]; arrFanJi[i] = arrFanJi[j]; arrFanJi[j] = num2; num2 = arrRaoJi[i]; arrRaoJi[i] = arrRaoJi[j]; arrRaoJi[j] = num2; num3++; } } } if (num3 > 0) { using FileStream fileStream3 = new FileStream(mFName_data, FileMode.Create, FileAccess.Write, FileShare.None); using (StreamWriter streamWriter = new StreamWriter(fileStream3, Encoding.UTF8)) { for (int k = 0; k < arrHead.Count; k++) { string value = $"{arrHead[k]}\t{arrTail[k]}\t{arrFanJi[k]}\t{arrRaoJi[k]}"; streamWriter.WriteLine(value); } streamWriter.Close(); } fileStream3.Close(); } int num4 = 0; for (int l = 0; l < arrHead.Count - 1; l++) { for (int m = l; m < arrHead.Count && Math.Abs(arrHead[l] - arrHead[m]) < 0.0001; m++) { num4++; } if (num4 > 0) { break; } } mNumTail = num4; mNumHead = arrHead.Count / num4; double num5 = -1.0; int num6 = 0; mListHead.Clear(); mListNum.Clear(); for (int n = 0; n < arrHead.Count; n++) { if (n == 0) { num5 = arrHead[n]; num6 = 1; } else if (Math.Abs(num5 - arrHead[n]) > 0.0001 && num6 > 0) { mListHead.Add(num5); mListNum.Add(num6); num5 = arrHead[n]; num6 = 1; if (n == arrHead.Count - 1) { mListHead.Add(num5); mListNum.Add(num6); break; } } else { num6++; if (n == arrHead.Count - 1 && Math.Abs(num5 - arrHead[n]) < 0.0001) { mListHead.Add(num5); mListNum.Add(num6); break; } } } num4 = 0; for (int num7 = 0; num7 < mListNum.Count; num7++) { num4 += mListNum[num7]; } if (num4 != arrHead.Count) { MyLog.AddLog($"ReadFileData() arrHead.Count={arrHead.Count} 不等于 mListNum={num4} ({mFName_data})"); } return result; } public void Search() { if (arrHead.Count == 0) { return; } bool flag = false; mSearchFanJi = arrFanJi[0]; mSearchRaoJi = arrRaoJi[0]; for (int i = 0; i < arrHead.Count; i++) { if (!(Math.Abs(arrHead[i] - 2.6) > 0.0001) && !(Math.Abs(arrTail[i] - 50.0) > 0.0001)) { mSearchFanJi = arrFanJi[i]; mSearchRaoJi = arrRaoJi[i]; flag = true; break; } } if (!flag) { MyLog.AddLog("Search() 未发现(波头2.6,波尾50)匹配的数据。(" + mFName_data + ")"); } } public double Proba(double head, double tail) { double num = 0.0; double num2 = 0.0; double num3 = 0.0; for (int i = 0; i < 97; i++) { num2 = Math.Exp(-0.5 * (Math.Pow((head - data[i, 0]) / bw[0], 2.0) + Math.Pow((tail - data[i, 1]) / bw[1], 2.0))); num3 += num2; } return num3 / (Math.PI * 194.0 * bw[0] * bw[1] * 0.999874014593309); } public string LeiDianFuXian() { string text = ""; Search(); double num = mSearchFanJi; if (m0FanJi_1RaoJi == 0) { num = mSearchFanJi; } if (m0FanJi_1RaoJi == 1) { num = mSearchRaoJi; } if (mShuiPing > num) { text = "No need!"; using (FileStream fileStream = new FileStream(mFName_out, FileMode.Create, FileAccess.Write, FileShare.None)) { using (StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.UTF8)) { streamWriter.WriteLine(text); streamWriter.Close(); } fileStream.Close(); } return text; } double num2 = 0.0; double num3 = 0.0; double num4 = 0.0; double num5 = 0.0; double num6 = 0.0; double num7 = 0.0; double num8 = 0.0; double num9 = 0.0; double num10 = 0.0; double num11 = 0.0; double num12 = 0.0; int num13 = 0; for (int i = 0; i < mNumHead; i++) { for (int j = 0; j < mNumTail; j++) { num13 = i * mNumTail + j; if (num13 >= arrHead.Count) { break; } double num14; double num15; if (j == 0) { num2 = arrHead[num13]; num3 = arrTail[num13]; num14 = arrFanJi[num13]; num15 = arrRaoJi[num13]; num10 = ((m0FanJi_1RaoJi == 0) ? num14 : ((m0FanJi_1RaoJi != 1) ? num14 : num15)); if (Math.Abs(mShuiPing - num10) < 0.0001) { double num16 = Proba(num2, num3); if (num16 > num12) { num12 = num16; num8 = num2; num9 = num3; } } else if (i == 0 && mShuiPing < num10 && m0FanJi_1RaoJi == 0) { num12 = Proba(num2, num3); num8 = num2; num9 = num3; } else { double num16 = Proba(num2, num3); if (num16 > num12) { num12 = num16; num8 = num2; num9 = num3; } } continue; } num4 = arrHead[num13]; num5 = arrTail[num13]; num6 = arrFanJi[num13]; num7 = arrRaoJi[num13]; num11 = ((m0FanJi_1RaoJi == 0) ? num6 : ((m0FanJi_1RaoJi != 1) ? num6 : num7)); if (Math.Abs(mShuiPing - num11) < 0.0001) { double num16 = Proba(num4, num5); if (num16 > num12) { num12 = num16; num8 = num4; num9 = num5; } } else if (mShuiPing > num10 && mShuiPing < num11) { if (Math.Abs(num2 - num4) < 0.0001) { double num17 = num2; double num18 = ((!(num3 > num5)) ? (num3 + (num5 - num3) * (mShuiPing - num10) / (num11 - num10)) : (num5 + (num3 - num5) * (mShuiPing - num10) / (num11 - num10))); double num16 = Proba(num17, num18); if (num16 > num12) { num12 = num16; num8 = num17; num9 = num18; } } else if (Math.Abs(num3 - num5) < 0.0001) { double num18 = num3; double num17 = ((!(num2 > num4)) ? (num2 + (num4 - num2) * (mShuiPing - num10) / (num11 - num10)) : (num4 + (num2 - num4) * (mShuiPing - num10) / (num11 - num10))); double num16 = Proba(num17, num18); if (num16 > num12) { num12 = num16; num8 = num17; num9 = num18; } } } else if (mShuiPing > num11 && mShuiPing < num10) { if (Math.Abs(num2 - num4) < 0.0001) { double num17 = num2; double num18 = ((!(num3 > num5)) ? (num3 + (num5 - num3) * (mShuiPing - num11) / (num10 - num11)) : (num5 + (num3 - num5) * (mShuiPing - num11) / (num10 - num11))); double num16 = Proba(num17, num18); if (num16 > num12) { num12 = num16; num8 = num17; num9 = num18; } } else if (Math.Abs(num3 - num5) < 0.0001) { double num18 = num3; double num17 = ((!(num2 > num4)) ? (num2 + (num4 - num2) * (mShuiPing - num11) / (num10 - num11)) : (num4 + (num2 - num4) * (mShuiPing - num11) / (num10 - num11))); double num16 = Proba(num17, num18); if (num16 > num12) { num12 = num16; num8 = num17; num9 = num18; } } } num2 = num4; num3 = num5; num14 = num6; num15 = num7; if (i == mNumHead - 1 && j == mNumTail - 1 && mShuiPing < num11 && m0FanJi_1RaoJi == 1) { num12 = Proba(num4, num5); num8 = num4; num9 = num5; } } } text = $"head = {num8}, tail = {num9}, pro = {num12}"; using (FileStream fileStream2 = new FileStream(mFName_out, FileMode.Create, FileAccess.Write, FileShare.None)) { using (StreamWriter streamWriter2 = new StreamWriter(fileStream2, Encoding.UTF8)) { streamWriter2.WriteLine(text); streamWriter2.Close(); } fileStream2.Close(); } return text; } public string LeiDianFuXian2() { string text = ""; Search(); double num = mSearchFanJi; if (m0FanJi_1RaoJi == 0) { num = mSearchFanJi; } if (m0FanJi_1RaoJi == 1) { num = mSearchRaoJi; } if (mShuiPing > num) { text = "No need!"; using (FileStream fileStream = new FileStream(mFName_out, FileMode.Create, FileAccess.Write, FileShare.None)) { using (StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.UTF8)) { streamWriter.WriteLine(text); streamWriter.Close(); } fileStream.Close(); } return text; } double num2 = 0.0; double num3 = 0.0; double num4 = 0.0; double num5 = 0.0; double num6 = 0.0; double num7 = 0.0; double num8 = 0.0; double num9 = 0.0; double num10 = 0.0; double num11 = 0.0; double num12 = 0.0; int num13 = 0; for (int i = 0; i < mListNum.Count; i++) { if (num13 >= arrHead.Count) { break; } int num14 = 0; while (num14 < mListNum[i] && num13 < arrHead.Count) { if (num14 == 0) { num2 = arrHead[num13]; num3 = arrTail[num13]; double num15 = arrFanJi[num13]; double num16 = arrRaoJi[num13]; num10 = ((m0FanJi_1RaoJi == 0) ? num15 : ((m0FanJi_1RaoJi != 1) ? num15 : num16)); if (Math.Abs(mShuiPing - num10) < 0.0001) { double num17 = Proba(num2, num3); if (num17 > num12) { num12 = num17; num8 = num2; num9 = num3; } } else if (i == 0 && mShuiPing < num10 && m0FanJi_1RaoJi == 0) { num12 = Proba(num2, num3); num8 = num2; num9 = num3; } else { double num17 = Proba(num2, num3); if (num17 > num12) { num12 = num17; num8 = num2; num9 = num3; } } } else { num4 = arrHead[num13]; num5 = arrTail[num13]; num6 = arrFanJi[num13]; num7 = arrRaoJi[num13]; num11 = ((m0FanJi_1RaoJi == 0) ? num6 : ((m0FanJi_1RaoJi != 1) ? num6 : num7)); if (Math.Abs(mShuiPing - num11) < 0.0001) { double num17 = Proba(num4, num5); if (num17 > num12) { num12 = num17; num8 = num4; num9 = num5; } } else if (mShuiPing > num10 && mShuiPing < num11) { if (Math.Abs(num2 - num4) < 0.0001) { double num18 = num2; double num19 = ((!(num3 > num5)) ? (num3 + (num5 - num3) * (mShuiPing - num10) / (num11 - num10)) : (num5 + (num3 - num5) * (mShuiPing - num10) / (num11 - num10))); double num17 = Proba(num18, num19); if (num17 > num12) { num12 = num17; num8 = num18; num9 = num19; } } else if (Math.Abs(num3 - num5) < 0.0001) { double num19 = num3; double num18 = ((!(num2 > num4)) ? (num2 + (num4 - num2) * (mShuiPing - num10) / (num11 - num10)) : (num4 + (num2 - num4) * (mShuiPing - num10) / (num11 - num10))); double num17 = Proba(num18, num19); if (num17 > num12) { num12 = num17; num8 = num18; num9 = num19; } } } else if (mShuiPing > num11 && mShuiPing < num10) { if (Math.Abs(num2 - num4) < 0.0001) { double num18 = num2; double num19 = ((!(num3 > num5)) ? (num3 + (num5 - num3) * (mShuiPing - num11) / (num10 - num11)) : (num5 + (num3 - num5) * (mShuiPing - num11) / (num10 - num11))); double num17 = Proba(num18, num19); if (num17 > num12) { num12 = num17; num8 = num18; num9 = num19; } } else if (Math.Abs(num3 - num5) < 0.0001) { double num19 = num3; double num18 = ((!(num2 > num4)) ? (num2 + (num4 - num2) * (mShuiPing - num11) / (num10 - num11)) : (num4 + (num2 - num4) * (mShuiPing - num11) / (num10 - num11))); double num17 = Proba(num18, num19); if (num17 > num12) { num12 = num17; num8 = num18; num9 = num19; } } } num2 = num4; num3 = num5; double num15 = num6; double num16 = num7; if (num13 == arrHead.Count - 1 && mShuiPing < num11 && m0FanJi_1RaoJi == 1) { num12 = Proba(num4, num5); num8 = num4; num9 = num5; } } num14++; num13++; } } text = $"head = {num8}, tail = {num9}, pro = {num12}"; using (FileStream fileStream2 = new FileStream(mFName_out, FileMode.Create, FileAccess.Write, FileShare.None)) { using (StreamWriter streamWriter2 = new StreamWriter(fileStream2, Encoding.UTF8)) { streamWriter2.WriteLine(text); streamWriter2.Close(); } fileStream2.Close(); } return text; } public string MyLoad_BaseData(string _fname) { string result = "OK"; bool flag = false; int i = -1; int num = 0; int num2 = 0; double num3 = 0.0; string text = ""; string[] array = new string[2] { "", "" }; string[] array2 = new string[2] { "", "" }; string text2 = ""; string[] separator = new string[3] { "\r", "\n", "," }; string[] array3 = null; TGanTaData tGanTaData = null; int num4 = 0; int num5 = 0; string text3 = ""; Dictionary dictionary = new Dictionary(); dictionary.Clear(); bool flag2 = false; arrHead.Clear(); arrTail.Clear(); arrFanJi.Clear(); arrRaoJi.Clear(); try { using FileStream fileStream = new FileStream(_fname, FileMode.Open, FileAccess.Read, FileShare.None); using (StreamReader streamReader = new StreamReader(fileStream, Encoding.UTF8)) { while (!streamReader.EndOfStream) { text2 = streamReader.ReadLine().Trim(); if (string.IsNullOrEmpty(text2)) { continue; } if (!flag) { for (i = 0; i < array.Length; i++) { if (text2.IndexOf(array[i]) >= 0) { flag = true; num = 0; break; } } continue; } if (flag) { for (int j = 0; j < array2.Length; j++) { if (text2.IndexOf(array2[j]) >= 0) { flag = false; i = -1; break; } } if (!flag) { continue; } } string text4 = array[i]; string text5 = text4; if (!(text5 == "")) { if (text5 == "") { num++; } continue; } array3 = text2.Split(separator, StringSplitOptions.None); if (num == 0) { num4 = 0; } if (num == 0 && text2.IndexOf("杆塔模型") >= 0) { for (int k = 0; k < array3.Length; k++) { dictionary.Add(array3[k], k); } num++; num4 = 0; flag2 = true; continue; } if (array3.Length >= 93) { tGanTaData = new TGanTaData(); if (flag2) { for (int l = 0; l < array3.Length; l++) { text3 = dictionary.ElementAt(l).Key; num5 = dictionary.ElementAt(l).Value; if (array3[num5] == null) { num2 = 0; num3 = 0.0; } else { try { num2 = Convert.ToInt32(array3[num5].Trim()); } catch (Exception) { num2 = 1; } try { num3 = Convert.ToDouble(array3[num5].Trim()); } catch (Exception) { num3 = 1.0; } } text = array3[num5].Trim(); switch (text3) { case "任务编号": tGanTaData.mTaskIDstring = text; break; case "任务塔号": tGanTaData.mID_TGanTa = num2; break; case "线路编号": tGanTaData.mXianLuID = num2; break; case "序号": tGanTaData.mIndex__GanTa = num2; break; case "线路名称": tGanTaData.mXianLuName = text; break; case "电压等级": tGanTaData.mDYDJ_GanTa = num2; break; case "塔号": tGanTaData.mID_GanTa = text; break; case "杆塔模型": tGanTaData.mModel_GanTa = text; break; case "塔形": tGanTaData.mTaXing_GanTa = text; break; case "经度": tGanTaData.mJingDu_GanTa = num3; break; case "纬度": tGanTaData.mWeiDu_GanTa = num3; break; case "I回相序": tGanTaData.mXiangXu1_GanTa = text; break; case "II回相序": tGanTaData.mXiangXu2_GanTa = text; break; case "III回相序": tGanTaData.mXiangXu3_GanTa = text; break; case "IV回相序": tGanTaData.mXiangXu4_GanTa = text; break; case "A相是否安装避雷器": tGanTaData.mBLQ_A_GanTa = text; break; case "B相是否安装避雷器": tGanTaData.mBLQ_B_GanTa = text; break; case "C相是否安装避雷器": tGanTaData.mBLQ_C_GanTa = text; break; case "接地电阻": tGanTaData.mJDDZ_GanTa = num3; break; case "左避雷中距m": tGanTaData.mBLZJ_L_GanTa = num3; break; case "右避雷中距m": tGanTaData.mBLZJ_R_GanTa = num3; break; case "避雷线高度m": tGanTaData.mBLXGD_GanTa = num3; break; case "绝缘子串长度mm": tGanTaData.mJYZCD_GanTa = num3; break; case "杆塔呼高m": tGanTaData.mHuGao_GanTa = num3; break; case "I回上相中距m": tGanTaData.m1ZJ_Shang_GanTa = num3; break; case "I回中相中距m": tGanTaData.m1ZJ_Zhong_GanTa = num3; break; case "I回下相中距m": tGanTaData.m1ZJ_Xia_GanTa = num3; break; case "I回上相高度m": tGanTaData.m1GD_Shang_GanTa = num3; break; case "I回中相高度m": tGanTaData.m1GD_Zhong_GanTa = num3; break; case "I回下相高度m": tGanTaData.m1GD_Xia_GanTa = num3; break; case "II回上相中距m": tGanTaData.m2ZJ_Shang_GanTa = num3; break; case "II回中相中距m": tGanTaData.m2ZJ_Zhong_GanTa = num3; break; case "II回下相中距m": tGanTaData.m2ZJ_Xia_GanTa = num3; break; case "II回上相高度m": tGanTaData.m2GD_Shang_GanTa = num3; break; case "II回中相高度m": tGanTaData.m2GD_Zhong_GanTa = num3; break; case "II回下相高度m": tGanTaData.m2GD_Xia_GanTa = num3; break; case "III回上相中距m": tGanTaData.m3ZJ_Shang_GanTa = num3; break; case "III回中相中距m": tGanTaData.m3ZJ_Zhong_GanTa = num3; break; case "III回下相中距m": tGanTaData.m3ZJ_Xia_GanTa = num3; break; case "III回上相高度m": tGanTaData.m3GD_Shang_GanTa = num3; break; case "III回中相高度m": tGanTaData.m3GD_Zhong_GanTa = num3; break; case "III回下相高度m": tGanTaData.m3GD_Xia_GanTa = num3; break; case "IV回上相中距m": tGanTaData.m4ZJ_Shang_GanTa = num3; break; case "IV回中相中距m": tGanTaData.m4ZJ_Zhong_GanTa = num3; break; case "IV回下相中距m": tGanTaData.m4ZJ_Xia_GanTa = num3; break; case "IV回上相高度m": tGanTaData.m4GD_Shang_GanTa = num3; break; case "IV回中相高度m": tGanTaData.m4GD_Zhong_GanTa = num3; break; case "IV回下相高度m": tGanTaData.m4GD_Xia_GanTa = num3; break; case "小号侧档距": tGanTaData.mXiaoHao_GanTa = num3; break; case "大号侧档距": tGanTaData.mDaHao_GanTa = num3; break; case "电角度": tGanTaData.mAngle_GanTa = num3; break; case "雷电流幅值a": tGanTaData.mCurrent_a_GanTa = num3; break; case "雷电流幅值b": tGanTaData.mCurrent_b_GanTa = num3; break; case "地面倾角1": tGanTaData.mDMQJ1_GanTa = num3; break; case "地面倾角2": tGanTaData.mDMQJ2_GanTa = num3; break; case "海拔m": tGanTaData.mHaiBa_GanTa = num3; break; case "地形": tGanTaData.mDiXing_GanTa = text; break; case "地闪密度": tGanTaData.mDSMD_GanTa = num3; break; case "直线或耐张杆塔": tGanTaData.mZXNZ_GanTa = text; break; case "雷电流波形种类": tGanTaData.mCurrentType_GanTa = num2; break; case "波头时间/μs": tGanTaData.mCurrentHeadTime_GanTa = num3; break; case "波尾时间/μs": tGanTaData.mCurrentTailTime_GanTa = num3; break; case "绕击反击": tGanTaData.mRaoJiFanJi_GanTa = num2; break; case "反击耐雷水平kA": tGanTaData.mFJ_NLSP_GanTa = num3; break; case "反击跳闸率(次/100km.a)": tGanTaData.mFJ_TZL_GanTa = num3; break; case "绕击耐雷水平kA": tGanTaData.mRJ_NLSP_GanTa = num3; break; case "绕击跳闸率(次/100km.a)": tGanTaData.mRJ_TZL_GanTa = num3; break; case "雷击风险等级": tGanTaData.mFXDJ_GanTa = num2; break; case "A相绕击耐雷水平kA": tGanTaData.mMA_RJ_NLSP_GanTa = num3; break; case "B相绕击耐雷水平kA": tGanTaData.mMB_RJ_NLSP_GanTa = num3; break; case "C相绕击耐雷水平kA": tGanTaData.mMC_RJ_NLSP_GanTa = num3; break; case "单相反击耐雷水平kA": tGanTaData.mM1_NLSP_GanTa = num3; break; case "单相闪络相": tGanTaData.mM1_Xiang_GanTa = text; break; case "单相反击跳闸率(次/100km.a)": tGanTaData.mM1_TZL_GanTa = num3; break; case "双相反击耐雷水平kA": tGanTaData.mM2_NLSP_GanTa = num3; break; case "双相闪络相": tGanTaData.mM2_Xiang_GanTa = text; break; case "双相反击跳闸率(次/100km.a)": tGanTaData.mM2_TZL_GanTa = num3; break; case "三相反击耐雷水平kA": tGanTaData.mM3_NLSP_GanTa = num3; break; case "三相闪络相": tGanTaData.mM3_Xiang_GanTa = text; break; case "三相反击跳闸率(次/100km.a)": tGanTaData.mM3_TZL_GanTa = num3; break; case "四相反击耐雷水平kA": tGanTaData.mM4_NLSP_GanTa = num3; break; case "四相闪络相": tGanTaData.mM4_Xiang_GanTa = text; break; case "四相反击跳闸率(次/100km.a)": tGanTaData.mM4_TZL_GanTa = num3; break; case "五相反击耐雷水平kA": tGanTaData.mM5_NLSP_GanTa = num3; break; case "五相闪络相": tGanTaData.mM5_Xiang_GanTa = text; break; case "五相反击跳闸率(次/100km.a)": tGanTaData.mM5_TZL_GanTa = num3; break; case "六相反击耐雷水平kA": tGanTaData.mM6_NLSP_GanTa = num3; break; case "六相闪络相": tGanTaData.mM6_Xiang_GanTa = text; break; case "六相反击跳闸率(次/100km.a)": tGanTaData.mM6_TZL_GanTa = num3; break; case "原因分析": tGanTaData.m_YuanYinFenXi_GanTa = text.Replace("\\r", "\r").Replace("\\n", "\n"); break; case "措施推荐": tGanTaData.m_CuoShiTuiJian_GanTa = text.Replace("\\r", "\r").Replace("\\n", "\n"); break; case "保护角": tGanTaData.m_BaoHuJiao = num3; break; case "普通计算结果": tGanTaData.m_Result_PuTongJiSuan_GanTa = text; break; } } } else if (!flag2) { for (num5 = 0; num5 < array3.Length; num5++) { if (array3[num5] == null) { num2 = 0; num3 = 0.0; } else { try { num2 = Convert.ToInt32(array3[num5].Trim()); } catch (Exception) { num2 = 1; } try { num3 = Convert.ToDouble(array3[num5].Trim()); } catch (Exception) { num3 = 1.0; } } text = array3[num5].Trim(); switch (num5) { case 0: tGanTaData.mTaskIDstring = text; break; case 1: tGanTaData.mID_TGanTa = num2; break; case 2: tGanTaData.mXianLuID = num2; break; case 3: tGanTaData.mIndex__GanTa = num2; break; case 4: tGanTaData.mXianLuName = text; break; case 5: tGanTaData.mDYDJ_GanTa = num2; break; case 6: tGanTaData.mID_GanTa = text; break; case 7: tGanTaData.mModel_GanTa = text; break; case 8: tGanTaData.mTaXing_GanTa = text; break; case 9: tGanTaData.mJingDu_GanTa = num3; break; case 10: tGanTaData.mWeiDu_GanTa = num3; break; case 11: tGanTaData.mXiangXu1_GanTa = text; break; case 12: tGanTaData.mXiangXu2_GanTa = text; break; case 13: tGanTaData.mXiangXu3_GanTa = text; break; case 14: tGanTaData.mXiangXu4_GanTa = text; break; case 15: tGanTaData.mBLQ_A_GanTa = text; break; case 16: tGanTaData.mBLQ_B_GanTa = text; break; case 17: tGanTaData.mBLQ_C_GanTa = text; break; case 18: tGanTaData.mJDDZ_GanTa = num3; break; case 19: tGanTaData.mBLZJ_L_GanTa = num3; break; case 20: tGanTaData.mBLZJ_R_GanTa = num3; break; case 21: tGanTaData.mBLXGD_GanTa = num3; break; case 22: tGanTaData.mJYZCD_GanTa = num3; break; case 23: tGanTaData.mHuGao_GanTa = num3; break; case 24: tGanTaData.m1ZJ_Shang_GanTa = num3; break; case 25: tGanTaData.m1ZJ_Zhong_GanTa = num3; break; case 26: tGanTaData.m1ZJ_Xia_GanTa = num3; break; case 27: tGanTaData.m1GD_Shang_GanTa = num3; break; case 28: tGanTaData.m1GD_Zhong_GanTa = num3; break; case 29: tGanTaData.m1GD_Xia_GanTa = num3; break; case 30: tGanTaData.m2ZJ_Shang_GanTa = num3; break; case 31: tGanTaData.m2ZJ_Zhong_GanTa = num3; break; case 32: tGanTaData.m2ZJ_Xia_GanTa = num3; break; case 33: tGanTaData.m2GD_Shang_GanTa = num3; break; case 34: tGanTaData.m2GD_Zhong_GanTa = num3; break; case 35: tGanTaData.m2GD_Xia_GanTa = num3; break; case 36: tGanTaData.m3ZJ_Shang_GanTa = num3; break; case 37: tGanTaData.m3ZJ_Zhong_GanTa = num3; break; case 38: tGanTaData.m3ZJ_Xia_GanTa = num3; break; case 39: tGanTaData.m3GD_Shang_GanTa = num3; break; case 40: tGanTaData.m3GD_Zhong_GanTa = num3; break; case 41: tGanTaData.m3GD_Xia_GanTa = num3; break; case 42: tGanTaData.m4ZJ_Shang_GanTa = num3; break; case 43: tGanTaData.m4ZJ_Zhong_GanTa = num3; break; case 44: tGanTaData.m4ZJ_Xia_GanTa = num3; break; case 45: tGanTaData.m4GD_Shang_GanTa = num3; break; case 46: tGanTaData.m4GD_Zhong_GanTa = num3; break; case 47: tGanTaData.m4GD_Xia_GanTa = num3; break; case 48: tGanTaData.mXiaoHao_GanTa = num3; break; case 49: tGanTaData.mDaHao_GanTa = num3; break; case 50: tGanTaData.mAngle_GanTa = num3; break; case 51: tGanTaData.mCurrent_a_GanTa = num3; break; case 52: tGanTaData.mCurrent_b_GanTa = num3; break; case 53: tGanTaData.mDMQJ1_GanTa = num3; break; case 54: tGanTaData.mDMQJ2_GanTa = num3; break; case 55: tGanTaData.mHaiBa_GanTa = num3; break; case 56: tGanTaData.mDiXing_GanTa = text; break; case 57: tGanTaData.mDSMD_GanTa = num3; break; case 58: tGanTaData.mZXNZ_GanTa = text; break; case 59: tGanTaData.mCurrentType_GanTa = num2; break; case 60: tGanTaData.mCurrentHeadTime_GanTa = num3; break; case 61: tGanTaData.mCurrentTailTime_GanTa = num3; break; case 62: tGanTaData.mRaoJiFanJi_GanTa = num2; break; case 63: tGanTaData.mFJ_NLSP_GanTa = num3; break; case 64: tGanTaData.mFJ_TZL_GanTa = num3; break; case 65: tGanTaData.mRJ_NLSP_GanTa = num3; break; case 66: tGanTaData.mRJ_TZL_GanTa = num3; break; case 67: tGanTaData.mFXDJ_GanTa = num2; break; case 68: tGanTaData.mMA_RJ_NLSP_GanTa = num3; break; case 69: tGanTaData.mMB_RJ_NLSP_GanTa = num3; break; case 70: tGanTaData.mMC_RJ_NLSP_GanTa = num3; break; case 71: tGanTaData.mM1_NLSP_GanTa = num3; break; case 72: tGanTaData.mM1_Xiang_GanTa = text; break; case 73: tGanTaData.mM1_TZL_GanTa = num3; break; case 74: tGanTaData.mM2_NLSP_GanTa = num3; break; case 75: tGanTaData.mM2_Xiang_GanTa = text; break; case 76: tGanTaData.mM2_TZL_GanTa = num3; break; case 77: tGanTaData.mM3_NLSP_GanTa = num3; break; case 78: tGanTaData.mM3_Xiang_GanTa = text; break; case 79: tGanTaData.mM3_TZL_GanTa = num3; break; case 80: tGanTaData.mM4_NLSP_GanTa = num3; break; case 81: tGanTaData.mM4_Xiang_GanTa = text; break; case 82: tGanTaData.mM4_TZL_GanTa = num3; break; case 83: tGanTaData.mM5_NLSP_GanTa = num3; break; case 84: tGanTaData.mM5_Xiang_GanTa = text; break; case 85: tGanTaData.mM5_TZL_GanTa = num3; break; case 86: tGanTaData.mM6_NLSP_GanTa = num3; break; case 87: tGanTaData.mM6_Xiang_GanTa = text; break; case 88: tGanTaData.mM6_TZL_GanTa = num3; break; case 89: tGanTaData.m_CuoShiTuiJian_GanTa = text.Replace("\\r", "\r").Replace("\\n", "\n"); break; case 90: tGanTaData.m_YuanYinFenXi_GanTa = text.Replace("\\r", "\r").Replace("\\n", "\n"); break; case 91: tGanTaData.m_BaoHuJiao = num3; break; case 92: tGanTaData.m_Result_PuTongJiSuan_GanTa = text; break; } } } if (tGanTaData.mCurrentHeadTime_GanTa > 0.0 && tGanTaData.mCurrentTailTime_GanTa > 0.0 && tGanTaData.mFJ_NLSP_GanTa > 0.0 && tGanTaData.mRJ_NLSP_GanTa > 0.0) { arrHead.Add(tGanTaData.mCurrentHeadTime_GanTa); arrTail.Add(tGanTaData.mCurrentTailTime_GanTa); arrFanJi.Add(tGanTaData.mFJ_NLSP_GanTa); arrRaoJi.Add(tGanTaData.mRJ_NLSP_GanTa); num4++; } } else if (array3.Length >= 92) { tGanTaData = new TGanTaData(); if (flag2) { for (int m = 0; m < array3.Length; m++) { text3 = dictionary.ElementAt(m).Key; num5 = dictionary.ElementAt(m).Value; if (array3[num5] == null) { num2 = 0; num3 = 0.0; } else { try { num2 = Convert.ToInt32(array3[num5].Trim()); } catch (Exception) { num2 = 1; } try { num3 = Convert.ToDouble(array3[num5].Trim()); } catch (Exception) { num3 = 1.0; } } text = array3[num5].Trim(); switch (text3) { case "任务编号": tGanTaData.mTaskIDstring = text; break; case "任务塔号": tGanTaData.mID_TGanTa = num2; break; case "线路编号": tGanTaData.mXianLuID = num2; break; case "序号": tGanTaData.mIndex__GanTa = num2; break; case "线路名称": tGanTaData.mXianLuName = text; break; case "电压等级": tGanTaData.mDYDJ_GanTa = num2; break; case "塔号": tGanTaData.mID_GanTa = text; break; case "杆塔模型": tGanTaData.mModel_GanTa = text; break; case "塔形": tGanTaData.mTaXing_GanTa = text; break; case "经度": tGanTaData.mJingDu_GanTa = num3; break; case "纬度": tGanTaData.mWeiDu_GanTa = num3; break; case "I回相序": tGanTaData.mXiangXu1_GanTa = text; break; case "II回相序": tGanTaData.mXiangXu2_GanTa = text; break; case "III回相序": tGanTaData.mXiangXu3_GanTa = text; break; case "IV回相序": tGanTaData.mXiangXu4_GanTa = text; break; case "A相是否安装避雷器": tGanTaData.mBLQ_A_GanTa = text; break; case "B相是否安装避雷器": tGanTaData.mBLQ_B_GanTa = text; break; case "C相是否安装避雷器": tGanTaData.mBLQ_C_GanTa = text; break; case "接地电阻": tGanTaData.mJDDZ_GanTa = num3; break; case "左避雷中距m": tGanTaData.mBLZJ_L_GanTa = num3; break; case "右避雷中距m": tGanTaData.mBLZJ_R_GanTa = num3; break; case "避雷线高度m": tGanTaData.mBLXGD_GanTa = num3; break; case "绝缘子串长度mm": tGanTaData.mJYZCD_GanTa = num3; break; case "杆塔呼高m": tGanTaData.mHuGao_GanTa = num3; break; case "I回上相中距m": tGanTaData.m1ZJ_Shang_GanTa = num3; break; case "I回中相中距m": tGanTaData.m1ZJ_Zhong_GanTa = num3; break; case "I回下相中距m": tGanTaData.m1ZJ_Xia_GanTa = num3; break; case "I回上相高度m": tGanTaData.m1GD_Shang_GanTa = num3; break; case "I回中相高度m": tGanTaData.m1GD_Zhong_GanTa = num3; break; case "I回下相高度m": tGanTaData.m1GD_Xia_GanTa = num3; break; case "II回上相中距m": tGanTaData.m2ZJ_Shang_GanTa = num3; break; case "II回中相中距m": tGanTaData.m2ZJ_Zhong_GanTa = num3; break; case "II回下相中距m": tGanTaData.m2ZJ_Xia_GanTa = num3; break; case "II回上相高度m": tGanTaData.m2GD_Shang_GanTa = num3; break; case "II回中相高度m": tGanTaData.m2GD_Zhong_GanTa = num3; break; case "II回下相高度m": tGanTaData.m2GD_Xia_GanTa = num3; break; case "III回上相中距m": tGanTaData.m3ZJ_Shang_GanTa = num3; break; case "III回中相中距m": tGanTaData.m3ZJ_Zhong_GanTa = num3; break; case "III回下相中距m": tGanTaData.m3ZJ_Xia_GanTa = num3; break; case "III回上相高度m": tGanTaData.m3GD_Shang_GanTa = num3; break; case "III回中相高度m": tGanTaData.m3GD_Zhong_GanTa = num3; break; case "III回下相高度m": tGanTaData.m3GD_Xia_GanTa = num3; break; case "IV回上相中距m": tGanTaData.m4ZJ_Shang_GanTa = num3; break; case "IV回中相中距m": tGanTaData.m4ZJ_Zhong_GanTa = num3; break; case "IV回下相中距m": tGanTaData.m4ZJ_Xia_GanTa = num3; break; case "IV回上相高度m": tGanTaData.m4GD_Shang_GanTa = num3; break; case "IV回中相高度m": tGanTaData.m4GD_Zhong_GanTa = num3; break; case "IV回下相高度m": tGanTaData.m4GD_Xia_GanTa = num3; break; case "小号侧档距": tGanTaData.mXiaoHao_GanTa = num3; break; case "大号侧档距": tGanTaData.mDaHao_GanTa = num3; break; case "电角度": tGanTaData.mAngle_GanTa = num3; break; case "雷电流幅值a": tGanTaData.mCurrent_a_GanTa = num3; break; case "雷电流幅值b": tGanTaData.mCurrent_b_GanTa = num3; break; case "地面倾角1": tGanTaData.mDMQJ1_GanTa = num3; break; case "地面倾角2": tGanTaData.mDMQJ2_GanTa = num3; break; case "海拔m": tGanTaData.mHaiBa_GanTa = num3; break; case "地形": tGanTaData.mDiXing_GanTa = text; break; case "地闪密度": tGanTaData.mDSMD_GanTa = num3; break; case "直线或耐张杆塔": tGanTaData.mZXNZ_GanTa = text; break; case "雷电流波形种类": tGanTaData.mCurrentType_GanTa = num2; break; case "波头时间/μs": tGanTaData.mCurrentHeadTime_GanTa = num3; break; case "波尾时间/μs": tGanTaData.mCurrentTailTime_GanTa = num3; break; case "绕击反击": tGanTaData.mRaoJiFanJi_GanTa = num2; break; case "反击耐雷水平kA": tGanTaData.mFJ_NLSP_GanTa = num3; break; case "反击跳闸率(次/100km.a)": tGanTaData.mFJ_TZL_GanTa = num3; break; case "绕击耐雷水平kA": tGanTaData.mRJ_NLSP_GanTa = num3; break; case "绕击跳闸率(次/100km.a)": tGanTaData.mRJ_TZL_GanTa = num3; break; case "雷击风险等级": tGanTaData.mFXDJ_GanTa = num2; break; case "A相绕击耐雷水平kA": tGanTaData.mMA_RJ_NLSP_GanTa = num3; break; case "B相绕击耐雷水平kA": tGanTaData.mMB_RJ_NLSP_GanTa = num3; break; case "C相绕击耐雷水平kA": tGanTaData.mMC_RJ_NLSP_GanTa = num3; break; case "单相反击耐雷水平kA": tGanTaData.mM1_NLSP_GanTa = num3; break; case "单相闪络相": tGanTaData.mM1_Xiang_GanTa = text; break; case "单相反击跳闸率(次/100km.a)": tGanTaData.mM1_TZL_GanTa = num3; break; case "双相反击耐雷水平kA": tGanTaData.mM2_NLSP_GanTa = num3; break; case "双相闪络相": tGanTaData.mM2_Xiang_GanTa = text; break; case "双相反击跳闸率(次/100km.a)": tGanTaData.mM2_TZL_GanTa = num3; break; case "三相反击耐雷水平kA": tGanTaData.mM3_NLSP_GanTa = num3; break; case "三相闪络相": tGanTaData.mM3_Xiang_GanTa = text; break; case "三相反击跳闸率(次/100km.a)": tGanTaData.mM3_TZL_GanTa = num3; break; case "四相反击耐雷水平kA": tGanTaData.mM4_NLSP_GanTa = num3; break; case "四相闪络相": tGanTaData.mM4_Xiang_GanTa = text; break; case "四相反击跳闸率(次/100km.a)": tGanTaData.mM4_TZL_GanTa = num3; break; case "五相反击耐雷水平kA": tGanTaData.mM5_NLSP_GanTa = num3; break; case "五相闪络相": tGanTaData.mM5_Xiang_GanTa = text; break; case "五相反击跳闸率(次/100km.a)": tGanTaData.mM5_TZL_GanTa = num3; break; case "六相反击耐雷水平kA": tGanTaData.mM6_NLSP_GanTa = num3; break; case "六相闪络相": tGanTaData.mM6_Xiang_GanTa = text; break; case "六相反击跳闸率(次/100km.a)": tGanTaData.mM6_TZL_GanTa = num3; break; case "原因分析": tGanTaData.m_YuanYinFenXi_GanTa = text.Replace("\\r", "\r").Replace("\\n", "\n"); break; case "措施推荐": tGanTaData.m_CuoShiTuiJian_GanTa = text.Replace("\\r", "\r").Replace("\\n", "\n"); break; case "普通计算结果": tGanTaData.m_Result_PuTongJiSuan_GanTa = text; break; } } } else if (!flag2) { for (num5 = 0; num5 < array3.Length; num5++) { if (array3[num5] == null) { num2 = 0; num3 = 0.0; } else { try { num2 = Convert.ToInt32(array3[num5].Trim()); } catch (Exception) { num2 = 1; } try { num3 = Convert.ToDouble(array3[num5].Trim()); } catch (Exception) { num3 = 1.0; } } text = array3[num5].Trim(); switch (num5) { case 0: tGanTaData.mTaskIDstring = text; break; case 1: tGanTaData.mID_TGanTa = num2; break; case 2: tGanTaData.mXianLuID = num2; break; case 3: tGanTaData.mIndex__GanTa = num2; break; case 4: tGanTaData.mXianLuName = text; break; case 5: tGanTaData.mDYDJ_GanTa = num2; break; case 6: tGanTaData.mID_GanTa = text; break; case 7: tGanTaData.mModel_GanTa = text; break; case 8: tGanTaData.mTaXing_GanTa = text; break; case 9: tGanTaData.mJingDu_GanTa = num3; break; case 10: tGanTaData.mWeiDu_GanTa = num3; break; case 11: tGanTaData.mXiangXu1_GanTa = text; break; case 12: tGanTaData.mXiangXu2_GanTa = text; break; case 13: tGanTaData.mXiangXu3_GanTa = text; break; case 14: tGanTaData.mXiangXu4_GanTa = text; break; case 15: tGanTaData.mBLQ_A_GanTa = text; break; case 16: tGanTaData.mBLQ_B_GanTa = text; break; case 17: tGanTaData.mBLQ_C_GanTa = text; break; case 18: tGanTaData.mJDDZ_GanTa = num3; break; case 19: tGanTaData.mBLZJ_L_GanTa = num3; break; case 20: tGanTaData.mBLZJ_R_GanTa = num3; break; case 21: tGanTaData.mBLXGD_GanTa = num3; break; case 22: tGanTaData.mJYZCD_GanTa = num3; break; case 23: tGanTaData.mHuGao_GanTa = num3; break; case 24: tGanTaData.m1ZJ_Shang_GanTa = num3; break; case 25: tGanTaData.m1ZJ_Zhong_GanTa = num3; break; case 26: tGanTaData.m1ZJ_Xia_GanTa = num3; break; case 27: tGanTaData.m1GD_Shang_GanTa = num3; break; case 28: tGanTaData.m1GD_Zhong_GanTa = num3; break; case 29: tGanTaData.m1GD_Xia_GanTa = num3; break; case 30: tGanTaData.m2ZJ_Shang_GanTa = num3; break; case 31: tGanTaData.m2ZJ_Zhong_GanTa = num3; break; case 32: tGanTaData.m2ZJ_Xia_GanTa = num3; break; case 33: tGanTaData.m2GD_Shang_GanTa = num3; break; case 34: tGanTaData.m2GD_Zhong_GanTa = num3; break; case 35: tGanTaData.m2GD_Xia_GanTa = num3; break; case 36: tGanTaData.m3ZJ_Shang_GanTa = num3; break; case 37: tGanTaData.m3ZJ_Zhong_GanTa = num3; break; case 38: tGanTaData.m3ZJ_Xia_GanTa = num3; break; case 39: tGanTaData.m3GD_Shang_GanTa = num3; break; case 40: tGanTaData.m3GD_Zhong_GanTa = num3; break; case 41: tGanTaData.m3GD_Xia_GanTa = num3; break; case 42: tGanTaData.m4ZJ_Shang_GanTa = num3; break; case 43: tGanTaData.m4ZJ_Zhong_GanTa = num3; break; case 44: tGanTaData.m4ZJ_Xia_GanTa = num3; break; case 45: tGanTaData.m4GD_Shang_GanTa = num3; break; case 46: tGanTaData.m4GD_Zhong_GanTa = num3; break; case 47: tGanTaData.m4GD_Xia_GanTa = num3; break; case 48: tGanTaData.mXiaoHao_GanTa = num3; break; case 49: tGanTaData.mDaHao_GanTa = num3; break; case 50: tGanTaData.mAngle_GanTa = num3; break; case 51: tGanTaData.mCurrent_a_GanTa = num3; break; case 52: tGanTaData.mCurrent_b_GanTa = num3; break; case 53: tGanTaData.mDMQJ1_GanTa = num3; break; case 54: tGanTaData.mDMQJ2_GanTa = num3; break; case 55: tGanTaData.mHaiBa_GanTa = num3; break; case 56: tGanTaData.mDiXing_GanTa = text; break; case 57: tGanTaData.mDSMD_GanTa = num3; break; case 58: tGanTaData.mZXNZ_GanTa = text; break; case 59: tGanTaData.mCurrentType_GanTa = num2; break; case 60: tGanTaData.mCurrentHeadTime_GanTa = num3; break; case 61: tGanTaData.mCurrentTailTime_GanTa = num3; break; case 62: tGanTaData.mRaoJiFanJi_GanTa = num2; break; case 63: tGanTaData.mFJ_NLSP_GanTa = num3; break; case 64: tGanTaData.mFJ_TZL_GanTa = num3; break; case 65: tGanTaData.mRJ_NLSP_GanTa = num3; break; case 66: tGanTaData.mRJ_TZL_GanTa = num3; break; case 67: tGanTaData.mFXDJ_GanTa = num2; break; case 68: tGanTaData.mMA_RJ_NLSP_GanTa = num3; break; case 69: tGanTaData.mMB_RJ_NLSP_GanTa = num3; break; case 70: tGanTaData.mMC_RJ_NLSP_GanTa = num3; break; case 71: tGanTaData.mM1_NLSP_GanTa = num3; break; case 72: tGanTaData.mM1_Xiang_GanTa = text; break; case 73: tGanTaData.mM1_TZL_GanTa = num3; break; case 74: tGanTaData.mM2_NLSP_GanTa = num3; break; case 75: tGanTaData.mM2_Xiang_GanTa = text; break; case 76: tGanTaData.mM2_TZL_GanTa = num3; break; case 77: tGanTaData.mM3_NLSP_GanTa = num3; break; case 78: tGanTaData.mM3_Xiang_GanTa = text; break; case 79: tGanTaData.mM3_TZL_GanTa = num3; break; case 80: tGanTaData.mM4_NLSP_GanTa = num3; break; case 81: tGanTaData.mM4_Xiang_GanTa = text; break; case 82: tGanTaData.mM4_TZL_GanTa = num3; break; case 83: tGanTaData.mM5_NLSP_GanTa = num3; break; case 84: tGanTaData.mM5_Xiang_GanTa = text; break; case 85: tGanTaData.mM5_TZL_GanTa = num3; break; case 86: tGanTaData.mM6_NLSP_GanTa = num3; break; case 87: tGanTaData.mM6_Xiang_GanTa = text; break; case 88: tGanTaData.mM6_TZL_GanTa = num3; break; case 89: tGanTaData.m_CuoShiTuiJian_GanTa = text.Replace("\\r", "\r").Replace("\\n", "\n"); break; case 90: tGanTaData.m_YuanYinFenXi_GanTa = text.Replace("\\r", "\r").Replace("\\n", "\n"); break; case 91: tGanTaData.m_Result_PuTongJiSuan_GanTa = text; break; } } } if (tGanTaData.mCurrentHeadTime_GanTa > 0.0 && tGanTaData.mCurrentTailTime_GanTa > 0.0 && tGanTaData.mFJ_NLSP_GanTa > 0.0 && tGanTaData.mRJ_NLSP_GanTa > 0.0) { arrHead.Add(tGanTaData.mCurrentHeadTime_GanTa); arrTail.Add(tGanTaData.mCurrentTailTime_GanTa); arrFanJi.Add(tGanTaData.mFJ_NLSP_GanTa); arrRaoJi.Add(tGanTaData.mRJ_NLSP_GanTa); num4++; } } else if (array3.Length >= 79) { tGanTaData = new TGanTaData(); if (flag2) { for (int n = 0; n < array3.Length; n++) { text3 = dictionary.ElementAt(n).Key; num5 = dictionary.ElementAt(n).Value; if (array3[num5] == null) { num2 = 0; num3 = 0.0; } else { try { num2 = Convert.ToInt32(array3[num5].Trim()); } catch (Exception) { num2 = 1; } try { num3 = Convert.ToDouble(array3[num5].Trim()); } catch (Exception) { num3 = 1.0; } } text = array3[num5].Trim(); switch (text3) { case "任务编号": tGanTaData.mTaskIDstring = text; break; case "任务塔号": tGanTaData.mID_TGanTa = num2; break; case "线路编号": tGanTaData.mXianLuID = num2; break; case "序号": tGanTaData.mIndex__GanTa = num2; break; case "线路名称": tGanTaData.mXianLuName = text; break; case "电压等级": tGanTaData.mDYDJ_GanTa = num2; break; case "塔号": tGanTaData.mID_GanTa = text; break; case "杆塔模型": tGanTaData.mModel_GanTa = text; break; case "塔形": tGanTaData.mTaXing_GanTa = text; break; case "经度": tGanTaData.mJingDu_GanTa = num3; break; case "纬度": tGanTaData.mWeiDu_GanTa = num3; break; case "I回相序": tGanTaData.mXiangXu1_GanTa = text; break; case "II回相序": tGanTaData.mXiangXu2_GanTa = text; break; case "III回相序": tGanTaData.mXiangXu3_GanTa = text; break; case "IV回相序": tGanTaData.mXiangXu4_GanTa = text; break; case "A相是否安装避雷器": tGanTaData.mBLQ_A_GanTa = text; break; case "B相是否安装避雷器": tGanTaData.mBLQ_B_GanTa = text; break; case "C相是否安装避雷器": tGanTaData.mBLQ_C_GanTa = text; break; case "接地电阻": tGanTaData.mJDDZ_GanTa = num3; break; case "左避雷中距m": tGanTaData.mBLZJ_L_GanTa = num3; break; case "右避雷中距m": tGanTaData.mBLZJ_R_GanTa = num3; break; case "避雷线高度m": tGanTaData.mBLXGD_GanTa = num3; break; case "绝缘子串长度mm": tGanTaData.mJYZCD_GanTa = num3; break; case "杆塔呼高m": tGanTaData.mHuGao_GanTa = num3; break; case "I回上相中距m": tGanTaData.m1ZJ_Shang_GanTa = num3; break; case "I回中相中距m": tGanTaData.m1ZJ_Zhong_GanTa = num3; break; case "I回下相中距m": tGanTaData.m1ZJ_Xia_GanTa = num3; break; case "I回上相高度m": tGanTaData.m1GD_Shang_GanTa = num3; break; case "I回中相高度m": tGanTaData.m1GD_Zhong_GanTa = num3; break; case "I回下相高度m": tGanTaData.m1GD_Xia_GanTa = num3; break; case "II回上相中距m": tGanTaData.m2ZJ_Shang_GanTa = num3; break; case "II回中相中距m": tGanTaData.m2ZJ_Zhong_GanTa = num3; break; case "II回下相中距m": tGanTaData.m2ZJ_Xia_GanTa = num3; break; case "II回上相高度m": tGanTaData.m2GD_Shang_GanTa = num3; break; case "II回中相高度m": tGanTaData.m2GD_Zhong_GanTa = num3; break; case "II回下相高度m": tGanTaData.m2GD_Xia_GanTa = num3; break; case "III回上相中距m": tGanTaData.m3ZJ_Shang_GanTa = num3; break; case "III回中相中距m": tGanTaData.m3ZJ_Zhong_GanTa = num3; break; case "III回下相中距m": tGanTaData.m3ZJ_Xia_GanTa = num3; break; case "III回上相高度m": tGanTaData.m3GD_Shang_GanTa = num3; break; case "III回中相高度m": tGanTaData.m3GD_Zhong_GanTa = num3; break; case "III回下相高度m": tGanTaData.m3GD_Xia_GanTa = num3; break; case "IV回上相中距m": tGanTaData.m4ZJ_Shang_GanTa = num3; break; case "IV回中相中距m": tGanTaData.m4ZJ_Zhong_GanTa = num3; break; case "IV回下相中距m": tGanTaData.m4ZJ_Xia_GanTa = num3; break; case "IV回上相高度m": tGanTaData.m4GD_Shang_GanTa = num3; break; case "IV回中相高度m": tGanTaData.m4GD_Zhong_GanTa = num3; break; case "IV回下相高度m": tGanTaData.m4GD_Xia_GanTa = num3; break; case "小号侧档距": tGanTaData.mXiaoHao_GanTa = num3; break; case "大号侧档距": tGanTaData.mDaHao_GanTa = num3; break; case "电角度": tGanTaData.mAngle_GanTa = num3; break; case "雷电流幅值a": tGanTaData.mCurrent_a_GanTa = num3; break; case "雷电流幅值b": tGanTaData.mCurrent_b_GanTa = num3; break; case "地面倾角1": tGanTaData.mDMQJ1_GanTa = num3; break; case "地面倾角2": tGanTaData.mDMQJ2_GanTa = num3; break; case "海拔m": tGanTaData.mHaiBa_GanTa = num3; break; case "地形": tGanTaData.mDiXing_GanTa = text; break; case "地闪密度": tGanTaData.mDSMD_GanTa = num3; break; case "直线或耐张杆塔": tGanTaData.mZXNZ_GanTa = text; break; case "雷电流波形种类": tGanTaData.mCurrentType_GanTa = num2; break; case "波头时间/μs": tGanTaData.mCurrentHeadTime_GanTa = num3; break; case "波尾时间/μs": tGanTaData.mCurrentTailTime_GanTa = num3; break; case "绕击反击": tGanTaData.mRaoJiFanJi_GanTa = num2; break; case "反击耐雷水平kA": tGanTaData.mFJ_NLSP_GanTa = num3; break; case "反击跳闸率(次/100km.a)": tGanTaData.mFJ_TZL_GanTa = num3; break; case "绕击耐雷水平kA": tGanTaData.mRJ_NLSP_GanTa = num3; break; case "绕击跳闸率(次/100km.a)": tGanTaData.mRJ_TZL_GanTa = num3; break; case "雷击风险等级": tGanTaData.mFXDJ_GanTa = num2; break; case "A相绕击耐雷水平kA": tGanTaData.mMA_RJ_NLSP_GanTa = num3; break; case "B相绕击耐雷水平kA": tGanTaData.mMB_RJ_NLSP_GanTa = num3; break; case "C相绕击耐雷水平kA": tGanTaData.mMC_RJ_NLSP_GanTa = num3; break; case "单相反击耐雷水平kA": tGanTaData.mM1_NLSP_GanTa = num3; break; case "单相闪络相": tGanTaData.mM1_Xiang_GanTa = text; break; case "双相反击耐雷水平kA": tGanTaData.mM2_NLSP_GanTa = num3; break; case "双相闪络相": tGanTaData.mM2_Xiang_GanTa = text; break; case "三相反击耐雷水平kA": tGanTaData.mM3_NLSP_GanTa = num3; break; case "原因分析": tGanTaData.m_YuanYinFenXi_GanTa = text.Replace("\\r", "\r").Replace("\\n", "\n"); break; case "措施推荐": tGanTaData.m_CuoShiTuiJian_GanTa = text.Replace("\\r", "\r").Replace("\\n", "\n"); break; case "普通计算结果": tGanTaData.m_Result_PuTongJiSuan_GanTa = text; break; } } } else if (!flag2) { for (num5 = 0; num5 < array3.Length; num5++) { if (array3[num5] == null) { num2 = 0; num3 = 0.0; } else { try { num2 = Convert.ToInt32(array3[num5].Trim()); } catch (Exception) { num2 = 1; } try { num3 = Convert.ToDouble(array3[num5].Trim()); } catch (Exception) { num3 = 1.0; } } text = array3[num5].Trim(); switch (num5) { case 0: tGanTaData.mTaskIDstring = text; break; case 1: tGanTaData.mID_TGanTa = num2; break; case 2: tGanTaData.mXianLuID = num2; break; case 3: tGanTaData.mIndex__GanTa = num2; break; case 4: tGanTaData.mXianLuName = text; break; case 5: tGanTaData.mDYDJ_GanTa = num2; break; case 6: tGanTaData.mID_GanTa = text; break; case 7: tGanTaData.mModel_GanTa = text; break; case 8: tGanTaData.mTaXing_GanTa = text; break; case 9: tGanTaData.mJingDu_GanTa = num3; break; case 10: tGanTaData.mWeiDu_GanTa = num3; break; case 11: tGanTaData.mXiangXu1_GanTa = text; break; case 12: tGanTaData.mXiangXu2_GanTa = text; break; case 13: tGanTaData.mXiangXu3_GanTa = text; break; case 14: tGanTaData.mXiangXu4_GanTa = text; break; case 15: tGanTaData.mBLQ_A_GanTa = text; break; case 16: tGanTaData.mBLQ_B_GanTa = text; break; case 17: tGanTaData.mBLQ_C_GanTa = text; break; case 18: tGanTaData.mJDDZ_GanTa = num3; break; case 19: tGanTaData.mBLZJ_L_GanTa = num3; break; case 20: tGanTaData.mBLZJ_R_GanTa = num3; break; case 21: tGanTaData.mBLXGD_GanTa = num3; break; case 22: tGanTaData.mJYZCD_GanTa = num3; break; case 23: tGanTaData.mHuGao_GanTa = num3; break; case 24: tGanTaData.m1ZJ_Shang_GanTa = num3; break; case 25: tGanTaData.m1ZJ_Zhong_GanTa = num3; break; case 26: tGanTaData.m1ZJ_Xia_GanTa = num3; break; case 27: tGanTaData.m1GD_Shang_GanTa = num3; break; case 28: tGanTaData.m1GD_Zhong_GanTa = num3; break; case 29: tGanTaData.m1GD_Xia_GanTa = num3; break; case 30: tGanTaData.m2ZJ_Shang_GanTa = num3; break; case 31: tGanTaData.m2ZJ_Zhong_GanTa = num3; break; case 32: tGanTaData.m2ZJ_Xia_GanTa = num3; break; case 33: tGanTaData.m2GD_Shang_GanTa = num3; break; case 34: tGanTaData.m2GD_Zhong_GanTa = num3; break; case 35: tGanTaData.m2GD_Xia_GanTa = num3; break; case 36: tGanTaData.m3ZJ_Shang_GanTa = num3; break; case 37: tGanTaData.m3ZJ_Zhong_GanTa = num3; break; case 38: tGanTaData.m3ZJ_Xia_GanTa = num3; break; case 39: tGanTaData.m3GD_Shang_GanTa = num3; break; case 40: tGanTaData.m3GD_Zhong_GanTa = num3; break; case 41: tGanTaData.m3GD_Xia_GanTa = num3; break; case 42: tGanTaData.m4ZJ_Shang_GanTa = num3; break; case 43: tGanTaData.m4ZJ_Zhong_GanTa = num3; break; case 44: tGanTaData.m4ZJ_Xia_GanTa = num3; break; case 45: tGanTaData.m4GD_Shang_GanTa = num3; break; case 46: tGanTaData.m4GD_Zhong_GanTa = num3; break; case 47: tGanTaData.m4GD_Xia_GanTa = num3; break; case 48: tGanTaData.mXiaoHao_GanTa = num3; break; case 49: tGanTaData.mDaHao_GanTa = num3; break; case 50: tGanTaData.mAngle_GanTa = num3; break; case 51: tGanTaData.mCurrent_a_GanTa = num3; break; case 52: tGanTaData.mCurrent_b_GanTa = num3; break; case 53: tGanTaData.mDMQJ1_GanTa = num3; break; case 54: tGanTaData.mDMQJ2_GanTa = num3; break; case 55: tGanTaData.mHaiBa_GanTa = num3; break; case 56: tGanTaData.mDiXing_GanTa = text; break; case 57: tGanTaData.mDSMD_GanTa = num3; break; case 58: tGanTaData.mZXNZ_GanTa = text; break; case 59: tGanTaData.mCurrentType_GanTa = num2; break; case 60: tGanTaData.mCurrentHeadTime_GanTa = num3; break; case 61: tGanTaData.mCurrentTailTime_GanTa = num3; break; case 62: tGanTaData.mRaoJiFanJi_GanTa = num2; break; case 63: tGanTaData.mFJ_NLSP_GanTa = num3; break; case 64: tGanTaData.mFJ_TZL_GanTa = num3; break; case 65: tGanTaData.mRJ_NLSP_GanTa = num3; break; case 66: tGanTaData.mRJ_TZL_GanTa = num3; break; case 67: tGanTaData.mFXDJ_GanTa = num2; break; case 68: tGanTaData.mMA_RJ_NLSP_GanTa = num3; break; case 69: tGanTaData.mMB_RJ_NLSP_GanTa = num3; break; case 70: tGanTaData.mMC_RJ_NLSP_GanTa = num3; break; case 71: tGanTaData.mM1_NLSP_GanTa = num3; break; case 72: tGanTaData.mM1_Xiang_GanTa = text; break; case 73: tGanTaData.mM2_NLSP_GanTa = num3; break; case 74: tGanTaData.mM2_Xiang_GanTa = text; break; case 75: tGanTaData.mM3_NLSP_GanTa = num3; break; case 76: tGanTaData.m_CuoShiTuiJian_GanTa = text.Replace("\\r", "\r").Replace("\\n", "\n"); break; case 77: tGanTaData.m_YuanYinFenXi_GanTa = text.Replace("\\r", "\r").Replace("\\n", "\n"); break; case 78: tGanTaData.m_Result_PuTongJiSuan_GanTa = text; break; } } } if (tGanTaData.mCurrentHeadTime_GanTa > 0.0 && tGanTaData.mCurrentTailTime_GanTa > 0.0 && tGanTaData.mFJ_NLSP_GanTa > 0.0 && tGanTaData.mRJ_NLSP_GanTa > 0.0) { arrHead.Add(tGanTaData.mCurrentHeadTime_GanTa); arrTail.Add(tGanTaData.mCurrentTailTime_GanTa); arrFanJi.Add(tGanTaData.mFJ_NLSP_GanTa); arrRaoJi.Add(tGanTaData.mRJ_NLSP_GanTa); num4++; } } num++; } streamReader.Close(); } fileStream.Close(); } catch (Exception ex13) { MyLog.AddLog("MyLoad_BaseData() 载入基础数据文件发生异常。文件:" + _fname + "。异常:" + ex13.Message + "。"); return "MyLoad_BaseData() 载入基础数据文件发生异常。文件:" + _fname + "。异常:" + ex13.Message + "。"; } using (FileStream fileStream2 = new FileStream(mFName_file, FileMode.Create, FileAccess.Write, FileShare.None)) { using (StreamWriter streamWriter = new StreamWriter(fileStream2, Encoding.UTF8)) { streamWriter.WriteLine(mCurveNo); streamWriter.WriteLine(mNumHead); streamWriter.WriteLine(mNumTail); streamWriter.WriteLine(mShuiPing); streamWriter.WriteLine(m0FanJi_1RaoJi); streamWriter.Close(); } fileStream2.Close(); } using (FileStream fileStream3 = new FileStream(mFName_data, FileMode.Create, FileAccess.Write, FileShare.None)) { using (StreamWriter streamWriter2 = new StreamWriter(fileStream3, Encoding.UTF8)) { for (int num6 = 0; num6 < arrHead.Count; num6++) { text2 = $"{arrHead[num6]}\t{arrTail[num6]}\t{arrFanJi[num6]}\t{arrRaoJi[num6]}"; streamWriter2.WriteLine(text2); } streamWriter2.Close(); } fileStream3.Close(); } return result; } }