📄 frmmain.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Resources;
using System.Collections;
using Txt2Sheet.myUtil;
using Excel;
namespace Txt2Sheet
{
public partial class frmMain : Form
{
private ResourceManager m_ResourceManager = new ResourceManager("Txt2Sheet.myRes", System.Reflection.Assembly.GetExecutingAssembly());
private string[] m_DataItem;
private string[] m_dataPosition;
private string[] m_dataTimes;
private string[] m_dataIgnore;
private TxtData[] m_data;
private StringBuilder[] m_DataString;
private Hashtable m_DataItemMapID;
private string m_reportDate;
private string m_reportTime;
private string m_applID;
private string m_jobName;
private bool m_ControlsLocked = false;
public frmMain()
{
m_DataItemMapID = new Hashtable();
m_reportDate = string.Empty;
m_reportTime = string.Empty;
m_applID = string.Empty;
m_jobName = string.Empty;
InitializeComponent();
}
private void btnOpenTxt_Click(object sender, EventArgs e)
{
lstListFile.Items.Clear();
openTxt.ShowDialog();
foreach(string filename in openTxt.FileNames)
{
lstListFile.Items.Add(filename);
}
}
private void readTxtFile(string filename,string[] dataItem)
{
StreamReader sr = null;
bool isData = false;
bool ishead = false;
bool isTitle = false;
string head = "";
int i = 0;
int id = -1;
int tmpInt = 0;
int currPosition=0;
string reportDate = "";
string reportTime = "";
string applID = "";
try
{
sr = new StreamReader(filename);
for (string txtline = sr.ReadLine(); txtline != null; txtline = sr.ReadLine())
{
i = i + 1;
if (txtline.Length > 1)
{
if (!txtline.Substring(0, 1).Equals("+"))
{
if (ishead)
{
head = txtline;
ishead = false;
}
if (txtline.Substring(0, 1).Equals("1"))
{
ishead = true;
isData = false;
tmpInt = txtline.IndexOf(m_reportDate) + m_reportDate.Length;
txtline = txtline.Substring(tmpInt).Trim();
reportDate = txtline.Substring(0, txtline.IndexOf(" "));
tmpInt = txtline.IndexOf(m_reportTime) + m_reportTime.Length;
txtline = txtline.Substring(tmpInt).Trim();
reportTime = txtline.Substring(0, txtline.IndexOf(" "));
}
foreach (string itemName in dataItem)
{
if (txtline.IndexOf(itemName) > 0)
{
id = getDataItemID(itemName);
isTitle = true;
m_data[id].m_totalTimes = m_data[id].m_totalTimes + 1;
if (head.IndexOf(m_applID) > 0)
{
tmpInt = head.IndexOf(m_applID)+m_applID.Length;
head=head.Substring(tmpInt).Trim();
applID = head.Substring(0, head.IndexOf(" "));
m_DataString[id].AppendLine(itemName);
m_DataString[id].AppendLine(applID);
m_DataString[id].AppendLine(reportDate);
m_DataString[id].AppendLine(reportTime);
break;
}
}
}
//是表名
if (isTitle)
{
isData = true;
isTitle = false;
currPosition = 0;
continue;
}
if (!(txtline.Substring(0, 1).Equals("0") || txtline.Substring(0, 1).Equals(" ") || txtline.Substring(0, 1).Equals("-")))
{
currPosition = 0;
isData = false;
}
if (isData)
{
if ((m_data[id].m_totalTimes % m_data[id].m_dataTimes) == 0)
{
currPosition = currPosition + 1;
if (currPosition > m_data[id].m_dataBeginRow )
{
m_DataString[id].AppendLine(txtline.Substring(2, txtline.Length - 2));
m_data[id].m_data.Append(applID);
m_data[id].m_data.Append(reportDate);
m_data[id].m_data.Append(reportTime);
m_data[id].m_data.Append(txtline.Substring(2, txtline.Length - 2));
}
}
}
}
}
label1.Text = i.ToString();
label1.Refresh();
}
}
catch (IOException ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
sr.Close();
}
}
private void btnAnalyse_Click(object sender, EventArgs e)
{
string filename =string.Empty;
string[] dataTile = m_DataItem;
label2.Text = DateTime.Now.ToLocalTime().ToShortTimeString();
label2.Refresh();
txtFile.Text = "";
btnAnalyse.Enabled = false;
LockControls(true);
for (int i = 0; i < lstListFile.Items.Count; i++)
{
filename = (string)lstListFile.Items[i];
lstListFile.SetSelected(i,false);
this.Refresh();
if (File.Exists(filename))
{
readTxtFile(filename, dataTile);
}
else
{
MessageBox.Show("文件不存在!");
}
}
for (int i = 1; i < m_DataString.Length; i++)
{
m_DataString[0].Append(m_DataString[i]);
}
txtFile.Text = m_DataString[0].ToString();
LockControls(false);
btnAnalyse.Enabled = true;
if (filename==null) return;
label3.Text = DateTime.Now.ToLocalTime().ToShortTimeString();
label3.Refresh();
}
private void frmMain_Load(object sender, EventArgs e)
{
initTxt2Sheet();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -