CRC校验程序3:通过窗体程序打开txt文件获取数据源,进行逐字节CRC校验

        在上一篇中,生成输出的CRC.exe将要成为这个窗体应用的内置模块。

        新建一个windows窗体应用程序,叫做CRClick。将应用程序CRC.exe从Console应用程序中找到,复制到CRClick文件夹的Debuge文件夹下。同时还有测试用的Test.txt。

 

        打开窗体设计页面,插入两个Textbox和一个按钮,长度Textbox用来显示被校验的文件的绝对路径,短Textbox显示最终校验码。按钮激发选择文件的窗口。设计如下:

 

        对于按钮的触发事件,我们生成一个OpenFileDialog控件,用它来读取、打开文件。具体代码如下:文件为Form.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Diagnostics;
 6 using System.Drawing;
 7 using System.IO;
 8 using System.Linq;
 9 using System.Text;
10 using System.Threading.Tasks;
11 using System.Windows.Forms;
12 
13 namespace CRClick
14 {
15     public partial class CRClick : Form
16     {
17         public CRClick()
18         {
19             InitializeComponent();
20         }
21 
22         private void button1_Click(object sender, EventArgs e)
23         {
24                 Stream myStream = null;
25      OpenFileDialog openFileDialog1 = new OpenFileDialog();
26      openFileDialog1.InitialDirectory = @"..\..\..\CRClick\CRClick\bin\Debug";
27      openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
28      openFileDialog1.FilterIndex = 2 ;
29      openFileDialog1.RestoreDirectory = true ;
30 
31      if(openFileDialog1.ShowDialog() == DialogResult.OK)
32      {
33          try
34          {
35              if ((myStream = openFileDialog1.OpenFile()) != null)
36              {
37                  using (myStream)
38                  {
39                      route.Text = openFileDialog1.FileName;
40 
41                      Process pro = new Process();
42                      pro.StartInfo.FileName = "CRC.exe";
43                      pro.StartInfo.UseShellExecute = false;
44                      pro.StartInfo.Arguments = route.Text;
45                      pro.StartInfo.RedirectStandardOutput = true;
46                      pro.StartInfo.RedirectStandardInput = true;
47                      pro.Start();
48                      CRCResult.Text = pro.StandardOutput.ReadToEnd();
49 
50                  }
51              }
52          }
53          catch (Exception ex)
54          {
55              MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
56          }
57      }
58         }
59     }
60 }

        从39到49行,是当文件选择结束之后,点下“打开”之后产生的触发事件,将文件绝对路径显示在长条文本框中,同时调用进程CRC.exe运算,结果在短框中输出,如图:

 

结果是

如此,一个CRC校验程序就完成了!

需要源代码和源文件的可以留言(^>^)

 

posted @ 2015-04-06 22:51  Mr.Dukechris  阅读(542)  评论(1编辑  收藏  举报