AHTC/RGD/RGD.WCS/FrmBrowseDarkCasket.cs

181 lines
6.5 KiB
C#
Raw Permalink Normal View History

2025-05-19 09:22:33 +08:00
using System;
using System.IO;
using System.Windows.Forms;
namespace RGD.WCS
{
public partial class FrmBrowseDarkCasket : Form
{
private static FrmBrowseDarkCasket _formInstance;
private static string strCurrentLog = string.Empty;
private static string strFormTitle = string.Empty;
private static int iCurrentDayLogs = 0;
private static int iEcho = 0;
public static FrmBrowseDarkCasket FormInstance
{
get
{
if (_formInstance == null)
{
_formInstance = new FrmBrowseDarkCasket();
}
return _formInstance;
}
set { _formInstance = value; }
}
public FrmBrowseDarkCasket()
{
InitializeComponent();
_formInstance = this;
}
private void FrmBrowseDarkCasket_Load(object sender, EventArgs e)
{
SetColumnTitle();
this.numericUpDown1.Value = this.numericUpDown1.Minimum;
button1_Click(sender, e);
this.Text = "浏览黑匣子:" + strFormTitle;
}
private void SetColumnTitle()
{
listView1.Columns[0].Text = "通讯时间";
listView1.Columns[1].Text = "接口类型";
listView1.Columns[2].Text = "命令来源";
listView1.Columns[3].Text = "地址/端口";
listView1.Columns[4].Text = "报文内容";
}
private void button1_Click(object sender, EventArgs e)
{
string filePath = System.IO.Path.GetFullPath(System.Reflection.Assembly.GetExecutingAssembly().GetName().ToString());
filePath = System.IO.Path.GetDirectoryName(filePath);
filePath = System.IO.Path.Combine(filePath, "DarkCasket");
if (Directory.Exists(filePath) == false)
{
return;
}
string[] files = Directory.GetFiles(filePath, "*.log", SearchOption.TopDirectoryOnly);//20101220只查找LOG文件避免查找到其它类型的文件
if (files != null)
{
Array.Sort(files);//20100726
if (files.Length < 1) return;
}
else
{
return;
}
bool bExist = false;
string tempStr = string.Empty;
string str = string.Empty;
//Get Selected Date's log file count
if (0 >= iEcho)
{
foreach (string strTemp in files)
{
if (strTemp.IndexOf(this.dateTimePicker1.Value.ToString("yyyy-MM-dd")) != -1)
{
iCurrentDayLogs++;
}
iEcho++;
}
this.label_TotalNo.Text = iCurrentDayLogs.ToString().Trim();
if (iCurrentDayLogs > 0)
{
this.numericUpDown1.Maximum = iCurrentDayLogs;
this.numericUpDown1.Minimum = 1;
}
else
{
this.numericUpDown1.Minimum = iCurrentDayLogs;
this.numericUpDown1.Maximum = iCurrentDayLogs;
}
}
iCurrentDayLogs = 0;
iEcho = 0;
for (int j = files.Length - 1; j > -1; j--)
{
str = files[j];
tempStr = str.Substring(str.LastIndexOf('\\') + 1);
tempStr = tempStr.Substring(0, tempStr.LastIndexOf('.'));
if (tempStr == (this.dateTimePicker1.Value.ToString("yyyy-MM-dd") + "0" + this.numericUpDown1.Value.ToString().Trim()))
{
//string opf=files[files.Length - 1];
string[] cc = new string[1] { "**" };
string[] sp = null;
using (StreamReader sr = new StreamReader(str))
{
this.listView1.Items.Clear();
sr.ReadLine();
while (!sr.EndOfStream)
{
sp = sr.ReadLine().Split(cc, StringSplitOptions.RemoveEmptyEntries);
// 添加判断条件过滤信息
if (comboBoxDevice.SelectedIndex > 0 || comboBoxDevice.Text != String.Empty)
{
if (sp.Length < 4 || comboBoxDevice.Text != sp[3])
{
continue;
}
}
if (sp.GetLength(0) > 0)
{
ListViewItem lvi = new ListViewItem();
lvi.Text = sp[0];
for (int i = 1; i < sp.GetLength(0); i++)
{
lvi.SubItems.Add(sp[i]);
}
listView1.Items.Add(lvi);
lvi = null;
}
}
}
strCurrentLog = str;
strFormTitle = tempStr;
bExist = true;
break;
}
}
if (!bExist)
{
listView1.Items.Clear();
strCurrentLog = string.Empty;
strFormTitle = this.dateTimePicker1.Value.ToString("yyyy-MM-dd");
}
}
private void button2_Click(object sender, EventArgs e)
{
if (MessageBox.Show(this, "您确定要删除指定日志文件吗?该操作将彻底删除指定日志文件!", "系统提示:", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
{
if (File.Exists(strCurrentLog))
{
File.Delete(strCurrentLog);
}
else
{
MessageBox.Show("选择日期不存在黑匣子!请重新选择日期!");
}
this.listView1.Items.Clear();
button1_Click(sender, e);
this.Text = "浏览黑匣子:" + strFormTitle;
}
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
}
}