Files
fl-knowledge/LP/XianLu.cs
T

1453 lines
37 KiB
C#
Raw Normal View History

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;
}
}