去除代码行号的一个小程序(控制台版本)

清风竹林发布了去除代码行号的一个小程序,确实方便大家收集一些文章代码,但个人认为象这样的小东东,要使广大网友能拿来就用,用.Net 2.0做成WinForm,有点贵族化了,于是动手整出个平民化的控制台版本,可以清除指定的文本文件,也可以对指定目录进行批量清除,希望对大家有点作用。以下代码在.Net Framework1.1与.Net Framework2.0均可运行。

  1None.gifusing System;
  2None.gifusing System.IO;
  3None.gifusing System.Text;
  4None.gif
  5None.gifnamespace Ycweb
  6ExpandedBlockStart.gifContractedBlock.gifdot.gif{
  7ExpandedSubBlockStart.gifContractedSubBlock.gif    /**//// <summary>
  8InBlock.gif    /// Summary description for Class1.
  9ExpandedSubBlockEnd.gif    /// </summary>

 10InBlock.gif    class CLN
 11ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 12ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
 13InBlock.gif        /// The main entry point for the application.
 14ExpandedSubBlockEnd.gif        /// </summary>

 15InBlock.gif        [STAThread]
 16InBlock.gif        static void Main(string[] args)
 17ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
 18InBlock.gif            //
 19InBlock.gif            // TODO: Add code to start application here
 20InBlock.gif            //
 21InBlock.gif            if(args.Length<1)
 22ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 23InBlock.gif                Console.WriteLine("用法:\n\r\t CLN YourFile.TXT|YourDirectory");
 24ExpandedSubBlockEnd.gif            }

 25InBlock.gif            else
 26ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 27InBlock.gif                string tmpArg=args[0];
 28InBlock.gif
 29InBlock.gif                if(tmpArg.StartsWith("/"|| tmpArg.StartsWith("?"))
 30ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
 31InBlock.gif                    Console.WriteLine("用法:\n\r\t CLN YourFile.TXT|YourDirectory");
 32ExpandedSubBlockEnd.gif                }

 33InBlock.gif                else
 34ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
 35InBlock.gif                    //假定用户提供的参数为目录,则先判断目录是否存在,如果存在则遍历该目录下的所有文本文件并清除行号
 36InBlock.gif                    if(System.IO.Directory.Exists(tmpArg))
 37ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
 38ContractedSubBlock.gifExpandedSubBlockStart.gif                        Clear Line Numbers For Files In The Directory#region Clear Line Numbers For Files In The Directory
 39InBlock.gif                        DirectoryInfo di=new DirectoryInfo(tmpArg);
 40InBlock.gif                        FileInfo[] txtFileInfo = di.GetFiles("*.txt");
 41InBlock.gif                        if(txtFileInfo.Length>0)
 42ExpandedSubBlockStart.gifContractedSubBlock.gif                        dot.gif{
 43InBlock.gif                            for(int i=0;i<txtFileInfo.Length;i++)
 44ExpandedSubBlockStart.gifContractedSubBlock.gif                            dot.gif{
 45InBlock.gif                                Console.WriteLine(ClearLine(txtFileInfo[i].FullName));
 46ExpandedSubBlockEnd.gif                            }

 47ExpandedSubBlockEnd.gif                        }

 48InBlock.gif                        else
 49ExpandedSubBlockStart.gifContractedSubBlock.gif                        dot.gif{
 50ExpandedSubBlockStart.gifContractedSubBlock.gif                            Console.WriteLine(string.Format("指定目录\"dot.gif{0}\"并不存在要清除行号的文本文件.",tmpArg));
 51ExpandedSubBlockEnd.gif                        }

 52InBlock.gif
 53ExpandedSubBlockEnd.gif                        #endregion

 54ExpandedSubBlockEnd.gif                    }

 55InBlock.gif                    else
 56ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
 57ContractedSubBlock.gifExpandedSubBlockStart.gif                        Clear Line Numbers For The File#region Clear Line Numbers For The File
 58InBlock.gif                        //假定用户提供的参数为文件名,则先判断该文件是否存在,如果存在则清除该文件的行号
 59InBlock.gif                        if(File.Exists(tmpArg))
 60ExpandedSubBlockStart.gifContractedSubBlock.gif                        dot.gif{
 61InBlock.gif                            Console.WriteLine(ClearLine(tmpArg));
 62ExpandedSubBlockEnd.gif                        }

 63InBlock.gif                        else
 64ExpandedSubBlockStart.gifContractedSubBlock.gif                        dot.gif{
 65ExpandedSubBlockStart.gifContractedSubBlock.gif                            Console.WriteLine(string.Format("指定的文件或目录\"dot.gif{0}\"并不存在,请核对后重试.",tmpArg));
 66ExpandedSubBlockEnd.gif                        }

 67InBlock.gif
 68ExpandedSubBlockEnd.gif                        #endregion

 69ExpandedSubBlockEnd.gif                    }

 70ExpandedSubBlockEnd.gif                }

 71ExpandedSubBlockEnd.gif            }

 72ExpandedSubBlockEnd.gif        }

 73InBlock.gif    
 74ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
 75InBlock.gif        /// 清除指定文件中的行号
 76InBlock.gif        /// </summary>
 77InBlock.gif        /// <param name="fileName">文件名,含路径</param>
 78ExpandedSubBlockEnd.gif        /// <returns>清除结果信息</returns>

 79InBlock.gif        public static string ClearLine(string fileName)
 80ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
 81InBlock.gif            string result;
 82InBlock.gif            FileInfo fi=new FileInfo(fileName);
 83InBlock.gif            string strExtension =fi.Extension;
 84InBlock.gif            try
 85ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 86InBlock.gif                using (StreamReader reader = new StreamReader(fileName, Encoding.Default, true))
 87ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
 88InBlock.gif                    using (StreamWriter writer = new StreamWriter(fileName.Replace(strExtension,"_clear" + strExtension)))
 89ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
 90InBlock.gif                        char[] lineNum = "#0123456789".ToCharArray();
 91InBlock.gif                        string code = null;
 92InBlock.gif                        while ((code = reader.ReadLine()) != null)
 93ExpandedSubBlockStart.gifContractedSubBlock.gif                        dot.gif{
 94InBlock.gif                            code = code.TrimStart();
 95InBlock.gif                            code = code.TrimStart(lineNum);
 96InBlock.gif                            writer.WriteLine(code);
 97ExpandedSubBlockEnd.gif                        }

 98ExpandedSubBlockEnd.gif                    }

 99ExpandedSubBlockEnd.gif                }

100InBlock.gif                result=string.Format("成功清除文件{0}的行号.",fileName);
101ExpandedSubBlockEnd.gif            }

102InBlock.gif            catch
103ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
104InBlock.gif                result=string.Format("清除文件{0}的行号失败.",fileName);
105ExpandedSubBlockEnd.gif            }

106InBlock.gif
107InBlock.gif            return result;
108ExpandedSubBlockEnd.gif        }

109ExpandedSubBlockEnd.gif    }

110InBlock.gif
111ExpandedBlockEnd.gif}

112None.gif

立即下载源码(for vs2003)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

. NET5实战千万高并发项目,性能吊打JAVA,C#排名万年老五,有望逆袭!

“秒杀活动”“抢红包”“微博热搜”“12306抢票”“共享单车拉新”等都是高并发的典型业务场景&#xff0c;那么如何解决这些业务场景背后的难点问题呢&#xff1f;秒杀系统中&#xff0c;QPS达到10万/s时&#xff0c;如何定位并解决业务瓶颈&#xff1f;明星婚恋话题不断引爆…

ABP vNext 审计日志获取真实客户端IP

背景在使用ABP vNext时&#xff0c;当需要记录审计日志时&#xff0c;我们按照https://docs.abp.io/zh-Hans/abp/latest/Audit-Logging配置即可开箱即用&#xff0c;然而在实际生产环境中&#xff0c;某些配置并不可取&#xff0c;比如今天的主角——客户端IP&#xff0c;记录用…

郭昶

郭 昶左直拳饰演《外来媳妇本地郎》中康家老二康祁宗的演员郭昶6月14日去世了&#xff0c;胃癌&#xff0c;享年50岁。这个消息真令人难以置信&#xff0c;不胜嘘唏。 《外来媳妇本地郎》在广东这边很受欢迎&#xff0c;每集结尾那带有浓厚岭南特色的粤曲小调在胡同小巷时有…

ABP vNext IOC替换原有Service实现

即 .NET IOC替换原有Service实现背景在使用ABP vNext时&#xff0c;该框架为我们实现了非常多的默认行为&#xff0c;以便开箱即用&#xff0c;但在实际使用中&#xff0c;我们总是需要根据自己的需求定制自己的服务&#xff0c;在.Net框架中&#xff0c;便提供了Service.Repla…

aqs java 简书,Java AQS源码解读

1、先聊点别的说实话&#xff0c;关于AQS的设计理念、实现、使用&#xff0c;我有打算写过一篇技术文章&#xff0c;但是在写完初稿后&#xff0c;发现掌握的还是模模糊糊的&#xff0c;模棱两可。痛定思痛&#xff0c;脚踏实地重新再来一遍。这次以 Java 8源码为基础进行解读。…

dnSpy反编译、部署调试神器

一、概要在工作当中&#xff0c;当程序部署了之后就算打了日志遇到极个别的特殊异常没有在程序日志中体现出来或者没有详细的报错原因会让开发者非常头疼&#xff0c;不得不盲猜bug到底出在哪里。这里分享一下工作上经常会用到的工具&#xff0c;这款工具可以反编译并运行调试已…

java中内边距跟外边距,padding和margin——内边距和外边距

一、padding——内边距(内填充)1.1、padding 简写属性在一个声明中设置所有填充属性。该属性可以有1到4个值。div.outer{width: 400px;height: 400px;border: 2px solid #000;}div.inner{width: 200px;height: 200px;background-color:red ;padding: 50px;}运行效果图&#xff…

AJAX将成为移动Web2.0时代首选开发平台

一、 引言  最近,Opera宣布通过他们的浏览器把AJAX技术应用于移动设备开发中。考虑到Opera浏览器在目前浏览器市场(特别是在移动浏览器市场)的流行性,我们可以预计这一宣布对于整个浏览器市场必然会产生重要影响。从加入到移动服务开发市场几年的经验来看&#xff0c;我相信现…

使用 ML.NET 实现峰值检测来排查异常

机器学习中一类问题称为峰值检测&#xff0c;它旨在识别与大部分时序中明显不同但临时突发的数据值。及时检测到这些可疑的个体、事件或观察值很重要&#xff0c;这样才能尽量减少其产生。异常情况检测是检测时序数据离群值的过程&#xff0c;在给定的输入时序上指向“怪异”或…

PHP防QQ列表右划,react native 实现类似QQ的侧滑列表效果

如果列表行数据需要更多的操作&#xff0c;使用侧滑菜单是移动端比较常见的方式&#xff0c;也符合用户的操作习惯&#xff0c;对app的接受度自然会相对提高点。最近得空就把原来的react-native项目升级了侧滑操作&#xff0c;轻轻松松支持android和ios双平台&#xff0c;效果如…

OpenTelemetry - 云原生下可观测性的新标准

CNCF 简介CNCF&#xff08;Cloud Native Computing Foundation&#xff09;&#xff0c;中文为“云原生计算基金会”&#xff0c;CNCF是Linux基金会旗下的基金会&#xff0c;可以理解为一个非盈利组织。当年谷歌内部一直用于编排容器的Borg项目开源了&#xff0c;为了该项目更好…

毕业设计——第三章 开发方法及系统实现(5)

国内私募机构九鼎控股打造APP&#xff0c;来就送 20元现金领取地址&#xff1a;http://jdb.jiudingcapital.com/phone.html内部邀请码&#xff1a;C8E245J &#xff08;不写邀请码&#xff0c;没有现金送&#xff09;国内私募机构九鼎控股打造&#xff0c;九鼎投资是在全国股份…

说说 RabbiMQ 的应答模式

RabbiMQ 我们都很熟悉了&#xff0c;是很常用的一个开源消息队列。搞懂 RabbiMQ 的应答模式对我们排查错误很有帮助&#xff0c;也能避免一些坑。本文说说 RabbiMQ 的应答模式。生产者发出一条消息给 RabbiMQ &#xff0c;RabbiMQ 将消息推送给消费者&#xff0c;消费者处理完消…

微软2020开源回顾:止不住的挨骂,停不下的贡献

喜欢就关注我们吧&#xff01;2020年&#xff0c;Linus Torvalds 开启“飚骚话”模式&#xff0c;言语不再激烈。看到“大喷子” Linus 都有机会变慈祥&#xff0c;料想微软近年来主动拥抱开源并示好的行为应该能改变他人的看法。然而事实并非如此&#xff0c;虽然微软积极投身…

每日一题——LeetCode859

方法一 个人方法&#xff1a; 首先s和goal要是长度不一样或者就只有一个字符这两种情况可以直接排除剩下的情况s和goal的长度都是一样的&#xff0c;s的长度为2也是特殊情况&#xff0c;只有s的第一位等于goal的第二位&#xff0c;s的第二位等于goal的第一位才能满足剩下的我们…

4倍速!ML.NET Model Builder GPU 与 CPU 对比测试

当我们使用 Visual Studio 进行机器学习开发时&#xff0c;一般都会推荐安装 ML.NET Model Builder &#xff0c;这让我们的开发更加可视化&#xff0c;并且按照步骤载入相关的训练集&#xff0c;选择好模型就够了&#xff0c;一切就是如此朴实无华。说到 ML.NET Model Builder…

ML.NET 推荐引擎中一类矩阵因子分解的缺陷

ML.NET 作为 .NET 跨平台的机器学习套件&#xff0c;在回归、预测、分类甚至是图像识别、异常检测都展现出简洁快速的优势&#xff0c;以往的文章已介绍过不再赘述。其实机器学习场景中还有一类非常常见的&#xff0c;就是推荐&#xff0c;特别是在线购物、文娱产品为了提升用户…

晋升新一线的合肥,跨平台的.NET氛围究竟如何?

大伙可能不知道&#xff0c;2020年合肥已经成功晋升为新一线城市了。本文通过对目前合肥.NET招聘信息以及公众号的相关数据的分析来看下目前合肥.NET的大环境。就着2020中国.NET开发者峰会顺利举行的东风&#xff0c;同时为进一步提升合肥地区的.NET技术氛围&#xff0c;一些合…

开源项目barcodelib-C#条形码图像生成库

介绍该库旨在为开发人员提供一个简单的类&#xff0c;以便他们在需要根据数据字符串生成条形码图像时使用。用法该库包含一个名为BarcodeLib的类&#xff0c;其中包含三个构造函数&#xff1a;Barcode(); Barcode(string); Barcode(string, BarcodeLib.TYPE);如果决定使用参数创…

ctf php 读取flag,BugkuCTF flag.php(反序列化)

进去后是个登录页面&#xff0c;但是login根本不会跳转&#xff0c;看源码也没提示&#xff0c;但是这道题给了一个提示&#xff1a;hint&#xff0c;那么盲猜应该是一个get参数&#xff0c;因为post不能跳转&#xff0c;那么get总有内容吧&#xff0c;跟上hint参数&#xff0c…