去除代码行号的一个小程序

 今天游览博客园,看别人的代码,觉得写得不错,想copy下来,无奈代码却有行号,我一向是先把代码copy下来然后一行一行的去除的,不过想想以后如果总是这么做的话也太麻烦了,于是终于决定写一个工具软件来做这件事情,共享给大家,希望能有所帮助。程序基于Microsoft Visual Studio 2005,主要代码如下:
 1using System;
 2using System.Collections.Generic;
 3using System.ComponentModel;
 4using System.Data;
 5using System.Drawing;
 6using System.Text;
 7using System.Windows.Forms;
 8
 9using System.IO;
10namespace ClearCodeLineNum
11{
12    public partial class Form1 : Form
13    {
14        public Form1()
15        {
16            InitializeComponent();
17
18            openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
19            openFileDialog1.FileName = null;
20        }

21
22        private void btnOpenFile_Click(object sender, EventArgs e)
23        {
24            if (openFileDialog1.ShowDialog() == DialogResult.OK)
25            {
26                txtFilePath.Text = openFileDialog1.FileName;
27                btnClearCode.Focus();
28            }

29        }

30
31        private void btnClearCode_Click(object sender, EventArgs e)
32        {
33            if (File.Exists(txtFilePath.Text))
34            {
35                using (StreamReader reader = new StreamReader(txtFilePath.Text, Encoding.Default, true))
36                {
37                    int index = txtFilePath.Text.LastIndexOf('.');
38
39                    ///strExtension is the file extension, we need to maintain the 
40                    ///cleared file's extension

41                    string strExtension = txtFilePath.Text.Substring(index);
42                    using (StreamWriter writer = new StreamWriter(txtFilePath.Text + ".clear" + strExtension))
43                    {
44                        ///lineNum will be the array of numbers that need removing
45                        ///from every line code.

46                        char[] lineNum = "0123456789".ToCharArray();
47                        string code = null;
48                        while ((code = reader.ReadLine()) != null)
49                        {
50                            ///remove the spaces at the front of the line,otherwise 
51                            ///it will stop the operation of the next line code.

52                            code = code.TrimStart();
53                            code = code.TrimStart(lineNum);
54                            writer.WriteLine(code);
55                        }

56                    }

57                }

58                MessageBox.Show("成功去除行号""清风竹林", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
59            }

60            btnOpenFile.Focus();
61        }

62
63        private void btnCopyPath_Click(object sender, EventArgs e)
64        {
65            if (File.Exists(txtFilePath.Text))
66            {
67                FileInfo fileInfo = new FileInfo(txtFilePath.Text);
68                System.Diagnostics.Process.Start(fileInfo.DirectoryName);
69                btnOpenFile.Focus();
70            }

71        }

72    }

73}
呵呵,现在好了,如上面的代码,只要copy下来保存成文本,用本程序就可以很容易的去除了。
 源代码下载: ClearCodeLineNum.rar
posted @ 2006-05-11 22:43  李现民  阅读(2239)  评论(9编辑  收藏  举报