AHTC/RGD/RGD.WCS/FrmBrowseDarkCasket.cs
2025-05-19 09:22:33 +08:00

181 lines
6.5 KiB
C#
Raw Permalink 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.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();
}
}
}