.net 流氓
天下无难事,有志者成之;天下无易事,有恒者得之。
摘要: 前言:很感谢大家对正则表达式文章的支持,这篇文章是这个系列的最后一节了,,但是正如之前所说的,这里将的仅仅只是怎么用.NET的正则表达式类,但是,对正则表达式的引擎的内部机制没有提及,如果大家需要,我会继续写下有关内部机制的问题.今天的内容如下:1. Match对象的使用2. Group对象的使用3.便捷方法4. 正则表达式的缓存今天的内容比较好懂.1. Match类的使用一般有三种方法可以创建Match对象:第一:Regex的Match方法,第二,静态函数Regex.Match方法,第三,Match对象自己的NextMatch方法.Match对象封装了某个正则表达式对象的单次应用的所有的相关 阅读全文
posted @ 2011-08-09 19:40 .net 流氓 阅读(300) 评论(0) 推荐(2) 编辑
摘要: 前言:大家反映文章的排版有问题,我在写文章的时候也一直注意这个问题,写的时候排版不错,但是发上去了就变了,我也不知道怎么回事,希望大家理解!谢谢各位!上一篇文章讲一了一些.NET中的正则表达式的类,而且着重讲了Regex类,下面我们就接着讲解,今天的内容分为以下部分:1.Regex类的一些高级话题.首先,我们接着上次的Regex的一些继续:1.1在Regex中有一个方法很奇怪的,那就是它的Replace方法,很多的类都有这个方法,比如string类也有,说白了就了替换方法,但是Regex类的这个方法稍有不同.首先,我们还是来举个例子,便于后面的讲解:CodeCode highlighting 阅读全文
posted @ 2011-08-09 19:33 .net 流氓 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 前言:感谢大家对上一篇文章的支持,真的很高兴自己的文章可以对大家带来一点好处,谢谢各位..今天的讲解分为以下部分:1.核心对象概述2.核心对象详解首先看第一部分:1.核心对象概述在.NET中,正则功能是通过7个类的高度交互来提供的,但是我们只要掌握其中的3个类就可以完成绝大部分功能,所以我们来看看这3个类.1.1Regex对象:首先我们创建Regex对象:CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->Regexregex=newRe 阅读全文
posted @ 2011-08-09 19:23 .net 流氓 阅读(498) 评论(0) 推荐(1) 编辑
摘要: 前言:正则表达式不仅仅只是用来验证的工具,对正则表达式式的误解就像我们在ajax出现之前只是把javascript看成一种"可有可无的,装饰型"的语种.其实正则表达充斥着我们的编程世界,从最底层的编译器的编译解析,到上层的字符串处理,都是正则表达式.我们重视它吧!以前我也只是认为正则表达式这是一种验证的工具,或者处理一些字符串文本,所以对它学习的也不深,直到我开发一个论坛,类似Discuz!NT那样的论坛时,我才重视正则表达式.特别是在从后台生成静态页面,和模板的时候,没有正则表达式几乎就不行.在我的ASP.NET控件开发系列中有文章提过:我们把aspx页面提交后,编译器其 阅读全文
posted @ 2011-08-09 15:14 .net 流氓 阅读(236) 评论(0) 推荐(1) 编辑
摘要: 这个是例子是网上淘来的,哈哈,很有用的!首先要到网上下载itextsharp.dll,然后添加引用,主程序如下:view sourceprint?01using System; 02using System.Data; 03using System.Configuration; 04using System.Web; 05using System.Web.Security; 06using System.Web.UI; 07using System.Web.UI.WebControls; 08using System.Web.UI.WebControls.WebParts; 09using S 阅读全文
posted @ 2011-08-09 14:44 .net 流氓 阅读(755) 评论(0) 推荐(0) 编辑
摘要: 首先引用ICSharpCode.SharpZipLib.dll,没有在这里下载:http://files.cnblogs.com/KenBlove/ICSharpCode.SharpZipLib.rar压缩打包代码/// <summary> /// 生成压缩文件 /// </summary> /// <param name="strZipPath">生成的zip文件的路径</param> /// <param name="strZipTopDirectoryPath">源文件的上级目录</ 阅读全文
posted @ 2011-08-09 11:51 .net 流氓 阅读(4886) 评论(2) 推荐(1) 编辑
摘要: 今天写了一天的代码,关于报表的一些基本控件,回来不想再写了,直接COPY上,有详细的注释。主要内容有上一页,下一页,放大,缩小,导为EXCEL和PDF,打印。这里再次感谢“蜡人张”,这里有很多功能是参考该大侠的博客后修改的,这里是他的文章链接:http://waxdoll.cnblogs.com/archive/2006/03/03/342435.html代友:namespace POSReport.ReportForm{ public partial class FrmReportViewBase : Form { #region 构造函数 public FrmReportViewBase( 阅读全文
posted @ 2011-08-09 10:38 .net 流氓 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 上一篇写到表参数设置和建立子表,分组,本篇将学习使用钻取报表。其实只要会使用参数和建立子报表,钻取报表是很简单的事情了。首先简单地说一下这里的钻取报表的目的:当点击相应的学生后面的查看按钮后,能跳转到另一张报表,显示该学生所在班级的所有学生信息。一 在文件夹Report中添加报表文件StudentDetail.rdlc,拖放一张表。报表-选择数据源为RptDataSet_Student,报表-建立参数ClassID,选中表,右键-属性-筛选器,设置(=Fields!ClassID.Value)=(=Fields!Sname.Value),确定。二 在rptStudent.rdlc的表的最右侧插 阅读全文
posted @ 2011-08-09 10:37 .net 流氓 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 昨天写了用C#做最基本的报表,并手动配置数据源,这篇主要讲报表参数设置和建立子表,分组。一建立报表参数 打开昨天的项目,在Report文件夹中新建报表rptStudent.rdlc,拖入一张表,点击报表-报表参数--参数--添加,参数名称Cno,确定二 为子报表添加数据集 依然是报表--数据源--把RptDataSet_Student添加到报表,确定.三 设计子报表 添加分组,如图1图1分组依据为ClassID,包括组头和组尾。如图2图2作如下设置其中的=Count(Fields!Sno.Value) 可以右击单元格,表达式--常见函数--聚合,选择Count(),再在Count()的括号中选 阅读全文
posted @ 2011-08-09 10:35 .net 流氓 阅读(894) 评论(0) 推荐(0) 编辑
摘要: 前面讲了用报表向导创建报表项目,今天用C#代码做与前面相同功能的基本报表。一 创建三个文件夹 DataSet(存放数据集),DataSource(提供数据源),Report(存放报表文件)二 创建数据集. 在DataSet中新建数据集RptDataSet.xsd,VS--视图--服务器资源管理器--选择前面创建的两张表--拖入数据集中(删除ClassTableAdapter和StudentTableAdapter,因为不删除的话系统会调用里面的FILL方法自动填充数据集。)注,这里的数据集不是必须从服务器资源管理器拖,也可以直接写,这里是为了方便数据的绑定,下面会讲到。三在DataSet中新建 阅读全文
posted @ 2011-08-09 10:34 .net 流氓 阅读(569) 评论(0) 推荐(0) 编辑
摘要: 最近公司要用到Report报表,为什么要用Report报表,原因很简单,客户要求用免费的。因此专门去学习了一下,看了园子里面很多大牛的随笔,谢园子里面无私的朋友,把自己的学习经验和大家分享,这里特别感谢“蜡人张”。好吧,就这么开始,我是第一次写随笔,因为还到明年才毕业,经验比较少,觉压力很大,写随笔也主要是学习而已,比较适合像我这样按步部就班的初学者。下面用的方法是用报表向导直接在界面上操作的。一 建数据库(比较懒的朋友可以直接复制下面的SQL)CREATE DATABASE RptDBGOUSE RptDBGOCREATE TABLE Class(SystemKey UNIQUEIDENTI 阅读全文
posted @ 2011-08-09 10:32 .net 流氓 阅读(674) 评论(0) 推荐(0) 编辑
摘要: 在C#里关于定时器类有3个:System.Windows.Forms.Timer类、System.Threading.Timer类和System.Timers.Timer类。System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API SetTimer实现的。它的主要缺点是计时不精确,而且必须有消息循环,Console Application(控制台应用程序)无法使用。System.Timers.Timer和System.Threading.Timer非常类似,它们是通过.NET 阅读全文
posted @ 2011-08-09 09:30 .net 流氓 阅读(11416) 评论(0) 推荐(0) 编辑
摘要: Action<T> 泛型委托:封装一个方法,该方法只采用一个参数并且不返回值。可以使用此委托以参数形式传递方法,而不用显式声明自定义的委托。该方法必须与此委托定义的方法签名相对应。也就是说,封装的方法必须具有一个通过值传递给它的参数,并且不能返回值。当然泛型委托不只是只能支持一个参数,它最多可以支持四个参数。 泛型委托与直接显示声明自定义委托的示例比较: 1:显示声明自定义委托:delegate void DisplayMessage(string message);public class TestCustomDelegate{ public static void Main() 阅读全文
posted @ 2011-08-09 09:18 .net 流氓 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 以下内容为菩提树下的杨过根据微软MSDN整理,转贴请注明出处MSDN对于Func<T, TResult>)的官方解释: 封装一个具有一个参数并返回 TResult 参数指定的类型值的方法。下面通过几个例子对比下,就容易知道其用法:以下例子演示了如何利用委托将字符串转化为大写:delegatestringConvertMethod(stringinString);privatestaticstringUppercaseString(stringinputString)...{returninputString.ToUpper();}protectedvoidPage_Load(obj 阅读全文
posted @ 2011-08-09 09:15 .net 流氓 阅读(626) 评论(0) 推荐(0) 编辑
摘要: 1.泛型委托“泛型类型”是可适应对多种数据类型执行相同功能的单个编程元素。定义泛型类或过程时,无需为可能需要对其执行该功能的每个数据类型定义单独版本。就好比是带有可拆卸刀头的螺丝刀。您检查需要拧动的螺丝,然后选择适合该螺丝的刀头(一字、十字、星形)。将正确的刀头插入到螺丝刀柄上后,您就可以使用螺丝刀执行完全相同的功能,即拧螺丝。螺丝刀就是泛型工具!定义泛型类型时,即使用一个或多个数据类型将其参数化。这样可允许使用代码定制数据类型以满足其要求。代码可以通过泛型元素声明若干个不同的编程元素,每个元素可使用一组不同的数据类型。但是,无论声明的元素使用哪些数据类型,它们均执行相同的逻辑。Code hi 阅读全文
posted @ 2011-08-09 08:58 .net 流氓 阅读(310) 评论(0) 推荐(0) 编辑