Files
fl-knowledge/LP/XianLu.cs
T

1453 lines
37 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace LP;
public class XianLu
{
public static object mLockObj;
public FlowLayoutPanel mRQ = null;
public Panel mPanel1st = null;
public Label mLabelName1st = null;
public Label mLabelJLZL1st = null;
public Label mLabelDYDJ1st = null;
public Label mLabelGanTa1st = null;
public CheckBox mCheckBoxXianLu1st = null;
public List<XianLuData> mListXianLuData = null;
public List<XianLuControl> mListXianLuControl = null;
public List<GanTas> mListGanTas = null;
public double mCurrent_a_All_GanTa = 0.0;
public double mCurrent_b_All_GanTa = 0.0;
public bool mCurrent_a_b_Ready = false;
static XianLu()
{
mLockObj = null;
mLockObj = new object();
}
public XianLu()
{
MySet_RongQi(null);
if (mListXianLuData == null)
{
mListXianLuData = new List<XianLuData>();
}
if (mListXianLuControl == null)
{
mListXianLuControl = new List<XianLuControl>();
}
if (mListGanTas == null)
{
mListGanTas = new List<GanTas>();
}
MyClear_ListXianLu();
}
public void MySet_RongQi(FlowLayoutPanel _rq)
{
mRQ = _rq;
}
public void MyClear_ListXianLu()
{
mListXianLuData.Clear();
mListXianLuControl.Clear();
mListGanTas.Clear();
}
public void Destroy()
{
mRQ.Controls.Clear();
for (int i = 0; i < mListXianLuControl.Count; i++)
{
mListXianLuControl[i].Dispose();
}
for (int j = 0; j < mListGanTas.Count; j++)
{
mListGanTas[j].Dispose();
}
MyClear_ListXianLu();
}
public void MySet_Control1st(Panel _panel, Label _label_name, Label _label_jlzl, Label _label_DYDJ, Label _label_GanTa, CheckBox _checkBox_XianLu)
{
mPanel1st = _panel;
mLabelName1st = _label_name;
mLabelJLZL1st = _label_jlzl;
mLabelDYDJ1st = _label_DYDJ;
mLabelGanTa1st = _label_GanTa;
mCheckBoxXianLu1st = _checkBox_XianLu;
}
public void Add1XianLuData(int _huiluNo, string _name_XianLu, string _jlzl_XianLu, int _dydj_XianLu, int _gantaNum_XianLu, int _id, int _pre1_LightingCurrent, int _pre2_DiShanMiDu, int _pre3_DiMianQingJiao, bool _isCreate = true)
{
int count = mListXianLuData.Count;
XianLuData xianLuData = new XianLuData();
lock (mLockObj)
{
if (_isCreate)
{
xianLuData.SetXianLuData(count, XianLuData.mNextID_static, _huiluNo, _name_XianLu, _jlzl_XianLu, _dydj_XianLu, _gantaNum_XianLu, _pre1_LightingCurrent, _pre2_DiShanMiDu, _pre3_DiMianQingJiao);
XianLuData.mNextID_static++;
}
if (!_isCreate)
{
xianLuData.SetXianLuData(count, _id, _huiluNo, _name_XianLu, _jlzl_XianLu, _dydj_XianLu, _gantaNum_XianLu, _pre1_LightingCurrent, _pre2_DiShanMiDu, _pre3_DiMianQingJiao);
if (XianLuData.mNextID_static <= _id)
{
XianLuData.mNextID_static = _id + 1;
}
}
}
mListXianLuData.Add(xianLuData);
CheckXianLuData_1Level("Add1XianLuData()", count);
}
private void CheckXianLuData_1Level(string _where, int _index)
{
if (_index < 0)
{
MyLog.AddLog($"[自查CheckXianLuData_1Level()] {_where} 参数2_index={_index}");
return;
}
XianLuData xianLuData = mListXianLuData[_index];
string text = "";
if (xianLuData.mIndex__Data < 0)
{
text += $" mIndex__Data={xianLuData.mIndex__Data}";
}
if (xianLuData.mID_XianLu <= 0)
{
text += $" mID_XianLu={xianLuData.mID_XianLu}";
}
if (xianLuData.mName_XianLu.Equals("-1"))
{
text += " mName_XianLu=-1";
}
if (xianLuData.mJLZL_XianLu.Equals("-1"))
{
text += " mJLZL_XianLu=-1";
}
if (xianLuData.mDYDJ_XianLu < 0)
{
text += $" mDYDY_XianLu={xianLuData.mDYDJ_XianLu}";
}
if (xianLuData.mStringDYDJ_XianLu.Equals("-1"))
{
text += " mStringDYDY_XianLu=-1";
}
if (xianLuData.mGanTaNumber_XianLu < 0)
{
text += $" mGanTaNumber_XianLu={xianLuData.mGanTaNumber_XianLu}";
}
if (xianLuData.mStringGanTaNumber_XianLu.Equals("-1"))
{
text += " mStringGanTaNumber_XianLu=-1";
}
if (!string.IsNullOrEmpty(text))
{
text = $"index={_index}" + text;
MyLog.AddLog("[自查CheckXianLuData_1Level()] " + _where + " " + text);
}
}
public void Add1XianLuControl(int _huiluNo, string _name_XianLu, string _JLZL_XianLu, int _dydj_XianLu, int _gantaNum_XianLu, int _id, int _pre1_LightingCurrent, int _pre2_DiShanMiDu, int _pre3_DiMianQingJiao, bool _isCreate = true)
{
Add1XianLuData(_huiluNo, _name_XianLu, _JLZL_XianLu, _dydj_XianLu, _gantaNum_XianLu, _id, _pre1_LightingCurrent, _pre2_DiShanMiDu, _pre3_DiMianQingJiao, _isCreate);
int count = mListXianLuControl.Count;
XianLuControl xianLuControl = new XianLuControl();
xianLuControl.mIndex__Control = count;
xianLuControl.mID_Control = mListXianLuData[count].mID_XianLu;
Panel panel = new Panel();
panel.Font = mPanel1st.Font;
panel.Location = new Point(mPanel1st.Location.X, mPanel1st.Location.Y + count * (mPanel1st.Height + mPanel1st.Margin.All * 2));
panel.Size = mPanel1st.Size;
panel.BorderStyle = mPanel1st.BorderStyle;
panel.ContextMenuStrip = mPanel1st.ContextMenuStrip;
panel.ContextMenuStrip.Tag = xianLuControl.mID_Control;
for (int i = 0; i < panel.ContextMenuStrip.Items.Count; i++)
{
panel.ContextMenuStrip.Items[i].Tag = xianLuControl.mID_Control;
}
panel.Controls.Clear();
panel.Tag = xianLuControl.mID_Control;
Label label = null;
label = new Label();
label.Font = mLabelName1st.Font;
label.Location = mLabelName1st.Location;
label.AutoSize = true;
label.Text = _name_XianLu;
panel.Controls.Add(label);
xianLuControl.mName_XianLu_Label = label;
label = new Label();
label.Font = mLabelJLZL1st.Font;
label.Location = mLabelJLZL1st.Location;
label.AutoSize = true;
label.Text = _JLZL_XianLu;
panel.Controls.Add(label);
xianLuControl.mJLZL_XianLu_Label = label;
label = new Label();
label.Font = mLabelDYDJ1st.Font;
label.Location = mLabelDYDJ1st.Location;
label.AutoSize = true;
label.Text = mListXianLuData[count].mStringDYDJ_XianLu;
panel.Controls.Add(label);
xianLuControl.mDYDJ_XianLu_Label = label;
label = new Label();
label.Font = mLabelGanTa1st.Font;
label.Location = mLabelGanTa1st.Location;
label.AutoSize = true;
label.Text = mListXianLuData[count].mStringGanTaNumber_XianLu;
panel.Controls.Add(label);
xianLuControl.mGanTaNumber_XianLu_Label = label;
CheckBox checkBox = new CheckBox();
checkBox.Font = mCheckBoxXianLu1st.Font;
checkBox.Location = mCheckBoxXianLu1st.Location;
checkBox.AutoSize = true;
checkBox.Text = mCheckBoxXianLu1st.Text;
checkBox.CheckState = (mListXianLuData[count].mShow_XianLu ? CheckState.Checked : CheckState.Unchecked);
checkBox.Tag = mListXianLuData[count].mID_XianLu;
panel.Controls.Add(checkBox);
xianLuControl.mShow_XianLu_CheckBox = checkBox;
panel.Visible = true;
xianLuControl.mPanel_XianLu = panel;
mListXianLuControl.Add(xianLuControl);
mRQ.Controls.Add(panel);
CheckXianLuControl_1Level("Add1XianLuControl()", count);
GanTas ganTas = new GanTas();
ganTas.SetXianLuData(mListXianLuData[count]);
mListGanTas.Add(ganTas);
}
private void CheckXianLuControl_1Level(string _where, int _index)
{
if (_index < 0)
{
MyLog.AddLog($"[自查CheckXianLuControl_1Level()] {_where} 参数2_index={_index}");
return;
}
XianLuControl xianLuControl = mListXianLuControl[_index];
string text = "";
if (xianLuControl.mIndex__Control < 0)
{
text += $" mIndex__Control={xianLuControl.mIndex__Control}";
}
if (xianLuControl.mID_Control <= 0)
{
text += $" mID_Control={xianLuControl.mID_Control}";
}
if (xianLuControl.mPanel_XianLu == null)
{
text += " mPanel_XianLu=null";
}
if (xianLuControl.mName_XianLu_Label == null)
{
text += " mName_XianLu_Label=null";
}
if (xianLuControl.mJLZL_XianLu_Label == null)
{
text += " mJLZL_XianLu_Label=null";
}
if (xianLuControl.mDYDJ_XianLu_Label == null)
{
text += " mDYDY_XianLu_Label=null";
}
if (xianLuControl.mGanTaNumber_XianLu_Label == null)
{
text += " mGanTaNumber_XianLu_Label=null";
}
if (!string.IsNullOrEmpty(text))
{
text = $"index={_index}" + text;
MyLog.AddLog("[自查CheckXianLuControl_1Level()] " + _where + " " + text);
}
}
public string Delete1_XianLuControl_and_XianLuData(int _index)
{
string result = "OK";
try
{
if (_index >= 0 && _index < mListGanTas.Count)
{
mListGanTas[_index].Dispose();
mListGanTas[_index] = null;
mListGanTas.RemoveAt(_index);
}
if (_index >= 0 && _index < mListXianLuControl.Count)
{
mListXianLuControl[_index].Dispose();
mListXianLuControl[_index] = null;
mListXianLuControl.RemoveAt(_index);
}
if (_index >= 0 && _index < mListXianLuData.Count)
{
mListXianLuData[_index].Destroy();
mListXianLuData[_index] = null;
mListXianLuData.RemoveAt(_index);
}
}
catch (Exception ex)
{
result = ex.Message;
}
return result;
}
public Panel GetLastXianLuControl_Panel()
{
Panel result = null;
if (mListXianLuControl.Count == 0)
{
return result;
}
int num = -1;
num = mListXianLuControl.Count - 1;
return mListXianLuControl[num].mPanel_XianLu;
}
public XianLuData GetLastXianLuData()
{
XianLuData result = null;
if (mListXianLuData.Count == 0)
{
return result;
}
int num = -1;
num = mListXianLuData.Count - 1;
return mListXianLuData[num];
}
public Panel GetXianLuControl_Panel(int _index)
{
Panel result = null;
if (_index < 0 || _index >= mListXianLuControl.Count)
{
MyLog.AddLog($"GetXianLuControl_Panel(_index) 参数1无效:{_index}");
return result;
}
return mListXianLuControl[_index].mPanel_XianLu;
}
public int MyLoadXianLu(string _filename)
{
int result = 0;
if (string.IsNullOrEmpty(_filename))
{
MyLog.AddLog("MyLoadXianLu(_fileName) 参数1为空:线路数据文件名。");
return result;
}
if (!File.Exists(_filename))
{
MyLog.AddLog("MyLoadXianLu(_fileName) 文件未找到! 文件名=" + _filename);
return result;
}
bool flag = false;
int i = -1;
int num = 0;
int num2 = 0;
string[] array = new string[2] { "<XianLu>", "<Task>" };
string[] array2 = new string[2] { "</XianLu>", "</Task>" };
string text = "";
string[] separator = new string[3] { "\r", "\n", "," };
string[] array3 = null;
int num3 = 0;
int num4 = 0;
string text2 = "";
string text3 = "";
int num5 = 0;
int num6 = 0;
int num7 = 0;
int num8 = 0;
int num9 = 0;
int num10 = 0;
double num11 = 0.0;
Encoding[] array4 = new Encoding[6]
{
Encoding.UTF8,
Encoding.Default,
Encoding.ASCII,
Encoding.Unicode,
Encoding.UTF7,
Encoding.UTF32
};
int num12 = 0;
bool flag2 = false;
for (int j = 0; j < array4.Length; j++)
{
try
{
using FileStream fileStream = new FileStream(_filename, FileMode.Open, FileAccess.Read, FileShare.None);
using (StreamReader streamReader = new StreamReader(fileStream, array4[j]))
{
text = streamReader.ReadToEnd().Trim();
if (string.IsNullOrEmpty(text) || text.IndexOf("线路") >= 0 || text.IndexOf("杆塔") >= 0)
{
num12 = j;
flag2 = true;
}
streamReader.Close();
}
fileStream.Close();
}
catch (Exception)
{
}
if (flag2)
{
break;
}
}
using (FileStream fileStream2 = new FileStream(_filename, FileMode.Open, FileAccess.Read, FileShare.None))
{
using (StreamReader streamReader2 = new StreamReader(fileStream2, array4[num12]))
{
while (!streamReader2.EndOfStream)
{
text = streamReader2.ReadLine().Trim();
if (string.IsNullOrEmpty(text))
{
continue;
}
if (!flag)
{
for (i = 0; i < array.Length; i++)
{
if (text.IndexOf(array[i]) >= 0)
{
flag = true;
num = 0;
break;
}
}
if (!flag || array[i].IndexOf("<XianLu>") < 0)
{
continue;
}
array3 = text.Split(separator, StringSplitOptions.RemoveEmptyEntries);
if (array3.Length >= 3)
{
try
{
num11 = Convert.ToDouble(array3[1]);
}
catch (Exception)
{
num11 = 31.0;
}
mCurrent_a_All_GanTa = num11;
try
{
num11 = Convert.ToDouble(array3[2]);
}
catch (Exception)
{
num11 = 2.8;
}
mCurrent_b_All_GanTa = num11;
mCurrent_a_b_Ready = true;
}
else
{
mCurrent_a_b_Ready = false;
}
continue;
}
if (flag)
{
for (int k = 0; k < array2.Length; k++)
{
if (text.IndexOf(array2[k]) >= 0)
{
flag = false;
i = -1;
break;
}
}
if (!flag)
{
continue;
}
}
string text4 = array[i];
string text5 = text4;
if (!(text5 == "<XianLu>"))
{
if (text5 == "<Task>")
{
num++;
}
continue;
}
array3 = text.Split(separator, StringSplitOptions.RemoveEmptyEntries);
if (num == 0)
{
num7 = 0;
}
if (array3.Length >= 9)
{
try
{
num2 = Convert.ToInt32(array3[0]);
}
catch (Exception)
{
num2 = 1;
}
num4 = num2;
try
{
num2 = Convert.ToInt32(array3[1]);
}
catch (Exception)
{
num2 = XianLuData.mNextID_static;
}
num3 = num2;
text2 = array3[2].Trim();
text3 = array3[3].Trim();
try
{
num2 = Convert.ToInt32(array3[4]);
}
catch (Exception)
{
num2 = -1;
}
num5 = num2;
try
{
num2 = Convert.ToInt32(array3[5]);
}
catch (Exception)
{
num2 = -1;
}
num6 = num2;
try
{
num2 = Convert.ToInt32(array3[6]);
}
catch (Exception)
{
num2 = 0;
}
num8 = num2;
try
{
num2 = Convert.ToInt32(array3[7]);
}
catch (Exception)
{
num2 = 0;
}
num9 = num2;
try
{
num2 = Convert.ToInt32(array3[8]);
}
catch (Exception)
{
num2 = 0;
}
num10 = num2;
Add1XianLuControl(num4, text2, text3, num5, num6, num3, num8, num9, num10);
num7++;
}
else if (array3.Length >= 6)
{
try
{
num2 = Convert.ToInt32(array3[0]);
}
catch (Exception)
{
num2 = 1;
}
num4 = num2;
try
{
num2 = Convert.ToInt32(array3[1]);
}
catch (Exception)
{
num2 = XianLuData.mNextID_static;
}
num3 = num2;
text2 = array3[2].Trim();
text3 = array3[3].Trim();
try
{
num2 = Convert.ToInt32(array3[4]);
}
catch (Exception)
{
num2 = -1;
}
num5 = num2;
try
{
num2 = Convert.ToInt32(array3[5]);
}
catch (Exception)
{
num2 = -1;
}
num6 = num2;
Add1XianLuControl(num4, text2, text3, num5, num6, num3, 0, 0, 0);
num7++;
}
else if (array3.Length == 5)
{
try
{
num2 = Convert.ToInt32(array3[0]);
}
catch (Exception)
{
num2 = 1;
}
num4 = num2;
text2 = array3[1].Trim();
text3 = array3[2].Trim();
try
{
num2 = Convert.ToInt32(array3[3]);
}
catch (Exception)
{
num2 = -1;
}
num5 = num2;
try
{
num2 = Convert.ToInt32(array3[4]);
}
catch (Exception)
{
num2 = -1;
}
num6 = num2;
Add1XianLuControl(num4, text2, text3, num5, num6, XianLuData.mNextID_static, 0, 0, 0);
num7++;
}
num++;
}
streamReader2.Close();
}
fileStream2.Close();
}
return num7;
}
public int MySaveXianLu(string _filename)
{
int result = 0;
if (string.IsNullOrEmpty(_filename))
{
MyLog.AddLog("MySaveXianLu(_fileName) 参数1为空:线路数据文件名。");
return result;
}
int num = 0;
int num2 = -1;
string[] array = new string[2] { "<XianLu>", "<Task>" };
string[] array2 = new string[2] { "</XianLu>", "</Task>" };
XianLuData xianLuData = null;
using (FileStream fileStream = new FileStream(_filename, FileMode.Create, FileAccess.Write, FileShare.None))
{
using (StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.UTF8))
{
for (num2 = 0; num2 < array.Length; num2++)
{
string text = array[num2];
string text2 = text;
if (text2 == "<XianLu>")
{
num = 0;
streamWriter.WriteLine(XianLuData.MyHead_ToString());
streamWriter.WriteLine($"{array[num2]},{mCurrent_a_All_GanTa},{mCurrent_b_All_GanTa}");
for (int i = 0; i < mListXianLuData.Count; i++)
{
xianLuData = mListXianLuData[i];
streamWriter.WriteLine(xianLuData.MyToString());
num++;
}
if (num2 < array2.Length)
{
streamWriter.WriteLine(array2[num2]);
}
else
{
streamWriter.WriteLine(array[num2].Replace("<", "</"));
}
}
}
streamWriter.Close();
}
fileStream.Close();
}
return num;
}
public bool IsRepeatXianLuName(string _XianLuName)
{
bool result = false;
for (int i = 0; i < mListXianLuData.Count; i++)
{
if (mListXianLuData[i].mName_XianLu.Equals(_XianLuName))
{
result = true;
break;
}
}
return result;
}
public void Refresh_GanTaNumber_Label()
{
for (int i = 0; i < mListXianLuControl.Count; i++)
{
if (mListXianLuData[i].mGanTaNumber_XianLu != mListGanTas[i].mListGanTaData.Count)
{
mListXianLuData[i].mGanTaNumber_XianLu = mListGanTas[i].mListGanTaData.Count;
mListXianLuData[i].mStringGanTaNumber_XianLu = $"[{mListXianLuData[i].mGanTaNumber_XianLu}]个杆塔";
FormDesktop.MySetLabelText(mListXianLuControl[i].mGanTaNumber_XianLu_Label, mListXianLuData[i].mStringGanTaNumber_XianLu);
}
}
}
public void Refresh_Index_XianLu()
{
for (int i = 0; i < mListXianLuControl.Count; i++)
{
if (mListXianLuControl[i].mIndex__Control != i)
{
mListXianLuControl[i].mIndex__Control = i;
}
}
for (int j = 0; j < mListXianLuData.Count; j++)
{
if (mListXianLuData[j].mIndex__Data != j)
{
mListXianLuData[j].mIndex__Data = j;
}
}
}
public int MyLoadGanTa(string _filename)
{
int result = 0;
if (string.IsNullOrEmpty(_filename))
{
MyLog.AddLog("MyLoadGanTa() 参数1为空:杆塔数据文件名。");
return result;
}
if (!File.Exists(_filename))
{
MyLog.AddLog("MyLoadGanTa() 文件未找到! 文件名=" + _filename);
return result;
}
bool flag = false;
int i = -1;
int num = 0;
int num2 = 0;
double num3 = 0.0;
string[] array = new string[2] { "<GanTa>", "<XianLu>" };
string[] array2 = new string[2] { "</GanTa>", "</XianLu>" };
string text = "";
string[] separator = new string[3] { "\r", "\n", "," };
string[] array3 = null;
GanTaData ganTaData = null;
XianLuData xianLuData = null;
int num4 = 0;
int num5 = 0;
string text2 = "";
Dictionary<string, int> dictionary = new Dictionary<string, int>();
dictionary.Clear();
bool flag2 = false;
int index = 0;
bool flag3 = false;
Encoding[] array4 = new Encoding[6]
{
Encoding.UTF8,
Encoding.Default,
Encoding.ASCII,
Encoding.Unicode,
Encoding.UTF7,
Encoding.UTF32
};
int num6 = 0;
bool flag4 = false;
for (int j = 0; j < array4.Length; j++)
{
try
{
using FileStream fileStream = new FileStream(_filename, FileMode.Open, FileAccess.Read, FileShare.None);
using (StreamReader streamReader = new StreamReader(fileStream, array4[j]))
{
text = streamReader.ReadToEnd().Trim();
if (string.IsNullOrEmpty(text) || text.IndexOf("线路") >= 0 || text.IndexOf("杆塔") >= 0)
{
num6 = j;
flag4 = true;
}
streamReader.Close();
}
fileStream.Close();
}
catch (Exception)
{
}
if (flag4)
{
break;
}
}
try
{
using FileStream fileStream2 = new FileStream(_filename, FileMode.Open, FileAccess.Read, FileShare.None);
using (StreamReader streamReader2 = new StreamReader(fileStream2, array4[num6]))
{
while (!streamReader2.EndOfStream)
{
text = streamReader2.ReadLine().Trim();
if (string.IsNullOrEmpty(text))
{
continue;
}
if (!flag)
{
for (i = 0; i < array.Length; i++)
{
if (text.IndexOf(array[i]) >= 0)
{
flag = true;
num = 0;
break;
}
}
continue;
}
if (flag)
{
for (int k = 0; k < array2.Length; k++)
{
if (text.IndexOf(array2[k]) >= 0)
{
flag = false;
i = -1;
break;
}
}
if (!flag)
{
continue;
}
}
string text3 = array[i];
string text4 = text3;
if (!(text4 == "<GanTa>"))
{
if (text4 == "<XianLu>")
{
num++;
}
continue;
}
array3 = text.Split(separator, StringSplitOptions.None);
if (num == 0)
{
num4 = 0;
}
if (num == 0 && text.IndexOf("塔号") >= 0)
{
for (int l = 0; l < array3.Length; l++)
{
dictionary.Add(array3[l], l);
}
num++;
num4 = 0;
flag2 = true;
continue;
}
if (array3.Length >= 65)
{
ganTaData = new GanTaData();
if (flag2)
{
for (int m = 0; m < array3.Length; m++)
{
text2 = 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;
}
}
switch (text2)
{
case "线路编号":
ganTaData.mXianLuID = num2;
break;
case "序号":
ganTaData.mIndex__GanTa = num2;
break;
case "线路名称":
ganTaData.mXianLuName = array3[num5].Trim();
break;
case "电压等级":
ganTaData.mDYDJ_GanTa = num2;
break;
case "塔号":
ganTaData.mID_GanTa = array3[num5].Trim();
break;
case "杆塔模型":
ganTaData.mModel_GanTa = array3[num5].Trim();
break;
case "塔形":
ganTaData.mTaXing_GanTa = array3[num5].Trim();
break;
case "经度":
ganTaData.mJingDu_GanTa = num3;
break;
case "纬度":
ganTaData.mWeiDu_GanTa = num3;
break;
case "I回相序":
ganTaData.mXiangXu1_GanTa = array3[num5].Trim();
break;
case "II回相序":
ganTaData.mXiangXu2_GanTa = array3[num5].Trim();
break;
case "III回相序":
ganTaData.mXiangXu3_GanTa = array3[num5].Trim();
break;
case "IV回相序":
ganTaData.mXiangXu4_GanTa = array3[num5].Trim();
break;
case "A相是否安装避雷器":
ganTaData.mBLQ_A_GanTa = array3[num5].Trim();
break;
case "B相是否安装避雷器":
ganTaData.mBLQ_B_GanTa = array3[num5].Trim();
break;
case "C相是否安装避雷器":
ganTaData.mBLQ_C_GanTa = array3[num5].Trim();
break;
case "接地电阻":
ganTaData.mJDDZ_GanTa = num3;
break;
case "左避雷中距m":
ganTaData.mBLZJ_L_GanTa = num3;
break;
case "右避雷中距m":
ganTaData.mBLZJ_R_GanTa = num3;
break;
case "避雷线高度m":
ganTaData.mBLXGD_GanTa = num3;
break;
case "绝缘子串长度mm":
ganTaData.mJYZCD_GanTa = num3;
break;
case "杆塔呼高m":
ganTaData.mHuGao_GanTa = num3;
break;
case "I回上相中距m":
ganTaData.m1ZJ_Shang_GanTa = num3;
break;
case "I回中相中距m":
ganTaData.m1ZJ_Zhong_GanTa = num3;
break;
case "I回下相中距m":
ganTaData.m1ZJ_Xia_GanTa = num3;
break;
case "I回上相高度m":
ganTaData.m1GD_Shang_GanTa = num3;
break;
case "I回中相高度m":
ganTaData.m1GD_Zhong_GanTa = num3;
break;
case "I回下相高度m":
ganTaData.m1GD_Xia_GanTa = num3;
break;
case "II回上相中距m":
ganTaData.m2ZJ_Shang_GanTa = num3;
break;
case "II回中相中距m":
ganTaData.m2ZJ_Zhong_GanTa = num3;
break;
case "II回下相中距m":
ganTaData.m2ZJ_Xia_GanTa = num3;
break;
case "II回上相高度m":
ganTaData.m2GD_Shang_GanTa = num3;
break;
case "II回中相高度m":
ganTaData.m2GD_Zhong_GanTa = num3;
break;
case "II回下相高度m":
ganTaData.m2GD_Xia_GanTa = num3;
break;
case "III回上相中距m":
ganTaData.m3ZJ_Shang_GanTa = num3;
break;
case "III回中相中距m":
ganTaData.m3ZJ_Zhong_GanTa = num3;
break;
case "III回下相中距m":
ganTaData.m3ZJ_Xia_GanTa = num3;
break;
case "III回上相高度m":
ganTaData.m3GD_Shang_GanTa = num3;
break;
case "III回中相高度m":
ganTaData.m3GD_Zhong_GanTa = num3;
break;
case "III回下相高度m":
ganTaData.m3GD_Xia_GanTa = num3;
break;
case "IV回上相中距m":
ganTaData.m4ZJ_Shang_GanTa = num3;
break;
case "IV回中相中距m":
ganTaData.m4ZJ_Zhong_GanTa = num3;
break;
case "IV回下相中距m":
ganTaData.m4ZJ_Xia_GanTa = num3;
break;
case "IV回上相高度m":
ganTaData.m4GD_Shang_GanTa = num3;
break;
case "IV回中相高度m":
ganTaData.m4GD_Zhong_GanTa = num3;
break;
case "IV回下相高度m":
ganTaData.m4GD_Xia_GanTa = num3;
break;
case "小号侧档距":
ganTaData.mXiaoHao_GanTa = num3;
break;
case "大号侧档距":
ganTaData.mDaHao_GanTa = num3;
break;
case "电角度":
ganTaData.mAngle_GanTa = num3;
break;
case "雷电流幅值a":
ganTaData.mCurrent_a_GanTa = num3;
break;
case "雷电流幅值b":
ganTaData.mCurrent_b_GanTa = num3;
break;
case "地面倾角1":
ganTaData.mDMQJ1_GanTa = num3;
break;
case "地面倾角2":
ganTaData.mDMQJ2_GanTa = num3;
break;
case "海拔m":
ganTaData.mHaiBa_GanTa = num3;
break;
case "地形":
ganTaData.mDiXing_GanTa = array3[num5].Trim();
break;
case "地闪密度":
ganTaData.mDSMD_GanTa = num3;
break;
case "直线或耐张杆塔":
ganTaData.mZXNZ_GanTa = array3[num5].Trim();
break;
case "绕击反击":
ganTaData.mRaoJiFanJi_GanTa = num2;
break;
case "反击耐雷水平kA":
ganTaData.mFJ_NLSP_GanTa = num3;
break;
case "反击跳闸率(次/100km.a)":
ganTaData.mFJ_TZL_GanTa = num3;
break;
case "绕击耐雷水平kA":
ganTaData.mRJ_NLSP_GanTa = num3;
break;
case "绕击跳闸率(次/100km.a)":
ganTaData.mRJ_TZL_GanTa = num3;
break;
case "雷击风险等级":
ganTaData.mFXDJ_GanTa = num2;
break;
case "原因分析":
ganTaData.m_YuanYinFenXi_GanTa = array3[num5].Trim().Replace("\\r", "\r").Replace("\\n", "\n");
break;
case "措施推荐":
ganTaData.m_CuoShiTuiJian_GanTa = array3[num5].Trim().Replace("\\r", "\r").Replace("\\n", "\n");
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;
}
}
switch (num5)
{
case 0:
ganTaData.mXianLuID = num2;
break;
case 1:
ganTaData.mIndex__GanTa = num2;
break;
case 2:
ganTaData.mXianLuName = array3[num5].Trim();
break;
case 3:
ganTaData.mDYDJ_GanTa = num2;
break;
case 4:
ganTaData.mID_GanTa = array3[num5].Trim();
break;
case 5:
ganTaData.mModel_GanTa = array3[num5].Trim();
break;
case 6:
ganTaData.mTaXing_GanTa = array3[num5].Trim();
break;
case 7:
ganTaData.mJingDu_GanTa = num3;
break;
case 8:
ganTaData.mWeiDu_GanTa = num3;
break;
case 9:
ganTaData.mXiangXu1_GanTa = array3[num5].Trim();
break;
case 10:
ganTaData.mXiangXu2_GanTa = array3[num5].Trim();
break;
case 11:
ganTaData.mXiangXu3_GanTa = array3[num5].Trim();
break;
case 12:
ganTaData.mXiangXu4_GanTa = array3[num5].Trim();
break;
case 13:
ganTaData.mBLQ_A_GanTa = array3[num5].Trim();
break;
case 14:
ganTaData.mBLQ_B_GanTa = array3[num5].Trim();
break;
case 15:
ganTaData.mBLQ_C_GanTa = array3[num5].Trim();
break;
case 16:
ganTaData.mJDDZ_GanTa = num3;
break;
case 17:
ganTaData.mBLZJ_L_GanTa = num3;
break;
case 18:
ganTaData.mBLZJ_R_GanTa = num3;
break;
case 19:
ganTaData.mBLXGD_GanTa = num3;
break;
case 20:
ganTaData.mJYZCD_GanTa = num3;
break;
case 21:
ganTaData.mHuGao_GanTa = num3;
break;
case 22:
ganTaData.m1ZJ_Shang_GanTa = num3;
break;
case 23:
ganTaData.m1ZJ_Zhong_GanTa = num3;
break;
case 24:
ganTaData.m1ZJ_Xia_GanTa = num3;
break;
case 25:
ganTaData.m1GD_Shang_GanTa = num3;
break;
case 26:
ganTaData.m1GD_Zhong_GanTa = num3;
break;
case 27:
ganTaData.m1GD_Xia_GanTa = num3;
break;
case 28:
ganTaData.m2ZJ_Shang_GanTa = num3;
break;
case 29:
ganTaData.m2ZJ_Zhong_GanTa = num3;
break;
case 30:
ganTaData.m2ZJ_Xia_GanTa = num3;
break;
case 31:
ganTaData.m2GD_Shang_GanTa = num3;
break;
case 32:
ganTaData.m2GD_Zhong_GanTa = num3;
break;
case 33:
ganTaData.m2GD_Xia_GanTa = num3;
break;
case 34:
ganTaData.m3ZJ_Shang_GanTa = num3;
break;
case 35:
ganTaData.m3ZJ_Zhong_GanTa = num3;
break;
case 36:
ganTaData.m3ZJ_Xia_GanTa = num3;
break;
case 37:
ganTaData.m3GD_Shang_GanTa = num3;
break;
case 38:
ganTaData.m3GD_Zhong_GanTa = num3;
break;
case 39:
ganTaData.m3GD_Xia_GanTa = num3;
break;
case 40:
ganTaData.m4ZJ_Shang_GanTa = num3;
break;
case 41:
ganTaData.m4ZJ_Zhong_GanTa = num3;
break;
case 42:
ganTaData.m4ZJ_Xia_GanTa = num3;
break;
case 43:
ganTaData.m4GD_Shang_GanTa = num3;
break;
case 44:
ganTaData.m4GD_Zhong_GanTa = num3;
break;
case 45:
ganTaData.m4GD_Xia_GanTa = num3;
break;
case 46:
ganTaData.mXiaoHao_GanTa = num3;
break;
case 47:
ganTaData.mDaHao_GanTa = num3;
break;
case 48:
ganTaData.mAngle_GanTa = num3;
break;
case 49:
ganTaData.mCurrent_a_GanTa = num3;
break;
case 50:
ganTaData.mCurrent_b_GanTa = num3;
break;
case 51:
ganTaData.mDMQJ1_GanTa = num3;
break;
case 52:
ganTaData.mDMQJ2_GanTa = num3;
break;
case 53:
ganTaData.mHaiBa_GanTa = num3;
break;
case 54:
ganTaData.mDiXing_GanTa = array3[num5].Trim();
break;
case 55:
ganTaData.mDSMD_GanTa = num3;
break;
case 56:
ganTaData.mZXNZ_GanTa = array3[num5].Trim();
break;
case 57:
ganTaData.mRaoJiFanJi_GanTa = num2;
break;
case 58:
ganTaData.mFJ_NLSP_GanTa = num3;
break;
case 59:
ganTaData.mFJ_TZL_GanTa = num3;
break;
case 60:
ganTaData.mRJ_NLSP_GanTa = num3;
break;
case 61:
ganTaData.mRJ_TZL_GanTa = num3;
break;
case 62:
ganTaData.mFXDJ_GanTa = num2;
break;
case 63:
ganTaData.m_CuoShiTuiJian_GanTa = array3[num5].Trim().Replace("\\r", "\r").Replace("\\n", "\n");
break;
case 64:
ganTaData.m_YuanYinFenXi_GanTa = array3[num5].Trim().Replace("\\r", "\r").Replace("\\n", "\n");
break;
}
}
}
flag3 = false;
for (int n = 0; n < mListXianLuData.Count; n++)
{
if (ganTaData.mXianLuName.Equals(mListXianLuData[n].mName_XianLu))
{
flag3 = true;
index = n;
xianLuData = mListXianLuData[n];
break;
}
}
if (!flag3)
{
num++;
continue;
}
ganTaData.mXianLuID = xianLuData.mID_XianLu;
ganTaData.mXianLuName = xianLuData.mName_XianLu;
mListGanTas[index].Add1GanTaData(ganTaData);
num4++;
}
num++;
}
streamReader2.Close();
}
fileStream2.Close();
}
catch (Exception ex6)
{
MyLog.AddLog("MyLoadGanTa() 载入杆塔文件发生异常。文件:" + _filename + "。异常:" + ex6.Message + "。");
MessageBox.Show(ex6.Message);
}
return num4;
}
public int MySaveGanTa(string _filename)
{
int result = 0;
if (string.IsNullOrEmpty(_filename))
{
MyLog.AddLog("MySaveGanTa(_fileName) 参数1为空:杆塔数据文件名。");
return result;
}
int num = 0;
int num2 = -1;
string[] array = new string[2] { "<GanTa>", "<XianLu>" };
string[] array2 = new string[2] { "</GanTa>", "</XianLu>" };
GanTaData ganTaData = null;
try
{
using FileStream fileStream = new FileStream(_filename, FileMode.Create, FileAccess.Write, FileShare.None);
using (StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.UTF8))
{
for (num2 = 0; num2 < array.Length; num2++)
{
string text = array[num2];
string text2 = text;
if (!(text2 == "<GanTa>"))
{
if (text2 == "<XianLu>")
{
}
continue;
}
num = 0;
streamWriter.WriteLine(array[num2]);
streamWriter.WriteLine(GanTaData.MyHead_ToString());
for (int i = 0; i < mListGanTas.Count; i++)
{
if (mListGanTas[i] != null && mListGanTas[i].mListGanTaData != null && mListGanTas[i].mListGanTaData.Count != 0)
{
for (int j = 0; j < mListGanTas[i].mListGanTaData.Count; j++)
{
ganTaData = mListGanTas[i].mListGanTaData[j];
streamWriter.WriteLine(ganTaData.MyToString());
num++;
}
}
}
if (num2 < array2.Length)
{
streamWriter.WriteLine(array2[num2]);
}
else
{
streamWriter.WriteLine(array[num2].Replace("<", "</"));
}
}
streamWriter.Close();
}
fileStream.Close();
}
catch (Exception ex)
{
MyLog.AddLog("MySaveGanTa() 异常:" + ex.Message);
MessageBox.Show("异常:" + ex.Message);
}
return num;
}
}