去除代码行号的一个小程序(控制台版本)
清风竹林发布了去除代码行号的一个小程序,确实方便大家收集一些文章代码,但个人认为象这样的小东东,要使广大网友能拿来就用,用.Net 2.0做成WinForm,有点贵族化了,于是动手整出个平民化的控制台版本,可以清除指定的文本文件,也可以对指定目录进行批量清除,希望对大家有点作用。以下代码在.Net Framework1.1与.Net Framework2.0均可运行。
1using System;
2using System.IO;
3using System.Text;
4
5namespace Ycweb
6{
7 /// <summary>
8 /// Summary description for Class1.
9 /// </summary>
10 class CLN
11 {
12 /// <summary>
13 /// The main entry point for the application.
14 /// </summary>
15 [STAThread]
16 static void Main(string[] args)
17 {
18 //
19 // TODO: Add code to start application here
20 //
21 if(args.Length<1)
22 {
23 Console.WriteLine("用法:\n\r\t CLN YourFile.TXT|YourDirectory");
24 }
25 else
26 {
27 string tmpArg=args[0];
28
29 if(tmpArg.StartsWith("/") || tmpArg.StartsWith("?"))
30 {
31 Console.WriteLine("用法:\n\r\t CLN YourFile.TXT|YourDirectory");
32 }
33 else
34 {
35 //假定用户提供的参数为目录,则先判断目录是否存在,如果存在则遍历该目录下的所有文本文件并清除行号
36 if(System.IO.Directory.Exists(tmpArg))
37 {
38 Clear Line Numbers For Files In The Directory
54 }
55 else
56 {
57 Clear Line Numbers For The File
69 }
70 }
71 }
72 }
73
74 /// <summary>
75 /// 清除指定文件中的行号
76 /// </summary>
77 /// <param name="fileName">文件名,含路径</param>
78 /// <returns>清除结果信息</returns>
79 public static string ClearLine(string fileName)
80 {
81 string result;
82 FileInfo fi=new FileInfo(fileName);
83 string strExtension =fi.Extension;
84 try
85 {
86 using (StreamReader reader = new StreamReader(fileName, Encoding.Default, true))
87 {
88 using (StreamWriter writer = new StreamWriter(fileName.Replace(strExtension,"_clear" + strExtension)))
89 {
90 char[] lineNum = "#0123456789".ToCharArray();
91 string code = null;
92 while ((code = reader.ReadLine()) != null)
93 {
94 code = code.TrimStart();
95 code = code.TrimStart(lineNum);
96 writer.WriteLine(code);
97 }
98 }
99 }
100 result=string.Format("成功清除文件{0}的行号.",fileName);
101 }
102 catch
103 {
104 result=string.Format("清除文件{0}的行号失败.",fileName);
105 }
106
107 return result;
108 }
109 }
110
111}
112
2using System.IO;
3using System.Text;
4
5namespace Ycweb
6{
7 /// <summary>
8 /// Summary description for Class1.
9 /// </summary>
10 class CLN
11 {
12 /// <summary>
13 /// The main entry point for the application.
14 /// </summary>
15 [STAThread]
16 static void Main(string[] args)
17 {
18 //
19 // TODO: Add code to start application here
20 //
21 if(args.Length<1)
22 {
23 Console.WriteLine("用法:\n\r\t CLN YourFile.TXT|YourDirectory");
24 }
25 else
26 {
27 string tmpArg=args[0];
28
29 if(tmpArg.StartsWith("/") || tmpArg.StartsWith("?"))
30 {
31 Console.WriteLine("用法:\n\r\t CLN YourFile.TXT|YourDirectory");
32 }
33 else
34 {
35 //假定用户提供的参数为目录,则先判断目录是否存在,如果存在则遍历该目录下的所有文本文件并清除行号
36 if(System.IO.Directory.Exists(tmpArg))
37 {
38 Clear Line Numbers For Files In The Directory
54 }
55 else
56 {
57 Clear Line Numbers For The File
69 }
70 }
71 }
72 }
73
74 /// <summary>
75 /// 清除指定文件中的行号
76 /// </summary>
77 /// <param name="fileName">文件名,含路径</param>
78 /// <returns>清除结果信息</returns>
79 public static string ClearLine(string fileName)
80 {
81 string result;
82 FileInfo fi=new FileInfo(fileName);
83 string strExtension =fi.Extension;
84 try
85 {
86 using (StreamReader reader = new StreamReader(fileName, Encoding.Default, true))
87 {
88 using (StreamWriter writer = new StreamWriter(fileName.Replace(strExtension,"_clear" + strExtension)))
89 {
90 char[] lineNum = "#0123456789".ToCharArray();
91 string code = null;
92 while ((code = reader.ReadLine()) != null)
93 {
94 code = code.TrimStart();
95 code = code.TrimStart(lineNum);
96 writer.WriteLine(code);
97 }
98 }
99 }
100 result=string.Format("成功清除文件{0}的行号.",fileName);
101 }
102 catch
103 {
104 result=string.Format("清除文件{0}的行号失败.",fileName);
105 }
106
107 return result;
108 }
109 }
110
111}
112
立即下载源码(for vs2003)