2011年6月16日

正则表达式(四) 部分例子,匹配规则

摘要: 部分例子正则表达式说明/\b([a-z]+) \1\b/gi一个单词连续出现的位置/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/ 将一个URL解析为协议、域、端口及相对路径/^(?:Chapter|Section) [1-9][0-9]{0,1}$/定位章节的位置/[-a-z]/A至z共26个字母再加一个-号。/ter\b/可匹配chapter,而不能terminal/\Bapt/可匹配chapter,而不能aptitude/Windows(?=95 |98 |NT )/可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows 阅读全文

posted @ 2011-06-16 15:14 Tony Liu 阅读(444) 评论(0) 推荐(0) 编辑

正则表达式(三)操作符的运算优先级、全部符号的解释

摘要: 4. 各种操作符的运算优先级相同优先级的从左到右进行运算,不同优先级的运算先高后低。各种操作符的优先级从高到低如下:操作符 描述\ 转义符(), (?:), (?=), [] 圆括号和方括号*, +, ?, {n}, {n,}, {n,m} 限定符^, $, \anymetacharacter 位置和顺序| “或”操作5. 全部符号解释字符 描述\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\ 阅读全文

posted @ 2011-06-16 15:08 Tony Liu 阅读(695) 评论(0) 推荐(0) 编辑

正则表达式(二)定义、类型

摘要: 3. 正则表达式定义正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 列目录时, dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的。正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。字符的类型普通字符非打印字符特殊字符限定符定位符选择后向引用3.1 普通字符由所有那些未显式指定为元字符的打印和非打印字符组成。 这 阅读全文

posted @ 2011-06-16 14:39 Tony Liu 阅读(603) 评论(0) 推荐(0) 编辑

正则表达式(一)引子、历史

摘要: 1. 引子 目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境,以及很多的应用软件中,都可以看到正则表达式的影子。正则表达式的使用,可以通过简单的办法来实现强大的功能。为了简单有效而又不失强大,造成了正则表达式代码的难度较大,学习起来也不是很容易,所以需要付出一些努力才行,入门之后参照一定的参考,使用起来还是比较简单有效的。例子: ^.+@.+\\..+$ 这样的代码曾经多次把我自己给吓退过。可能很多人也是被这样的代码给吓跑的吧。继续阅读本文将让你也可以自由应用这样的代码。注意:这里的第7部分跟前面的内容看 阅读全文

posted @ 2011-06-16 14:21 Tony Liu 阅读(373) 评论(0) 推荐(0) 编辑

China Orders Prison Terms in iPad Leak

摘要: BEIJING—A Chinese court sentenced three people to prison terms for collaborating to steal information from a key supplier regarding Apple Inc.'s iPad 2 several months before its release, the latest outcome from leaks about products made by the technology giant.Agence France-Presse/Getty ImagesA 阅读全文

posted @ 2011-06-16 09:41 Tony Liu 阅读(252) 评论(0) 推荐(0) 编辑

2011年6月15日

China Stamps Out Southern Unrest

摘要: The massive show of force appeared to have quelled the rioting, which began in the Xintang district on Friday night after security guards pushed to the ground a pregnant migrant street vendor from the western province of Sichuan as they tried to move her food stall off the street.A cyclist on Tuesda 阅读全文

posted @ 2011-06-15 22:17 Tony Liu 阅读(278) 评论(0) 推荐(0) 编辑

RTTI(五)相关函数3【转自大富翁】

摘要: GetFloatProp / SetFloatProp 函数GetFloatProp 用于获得浮点型属性值。它将 Single(4 bytes)、Double(8 bytes)、Comp(8 bytes)、Currency(8 bytes) 类型的浮点数属性转换为 Extented(10 bytes) 类型返回。function GetFloatProp(Instance: TObject; PropInfo: PPropInfo): Extended;function GetFloatProp(Instance: TObject; const PropName: string): Exten 阅读全文

posted @ 2011-06-15 17:25 Tony Liu 阅读(540) 评论(0) 推荐(1) 编辑

RTTI(四)相关函数2【转自大富翁】

摘要: GetOrdProp 函数详解SetOrdProp 函数GetEnumProp / SetEnumProp 函数GetSetProp / SetSetProp 函数 GetObjectProp / SetObjectProp 函数GetStrProp / SetStrProp 函数 ⊙ GetOrdProp 函数详解GetOrdProp 是 Delphi RTTI 中使用频繁的函数。GetOrdProp 根据对象句柄和对象属性的 TPropInfo 指针获得对象的属性值。它的返回值是 Longint,需要强制转换成相应的属性类型才能使用。function GetOrdProp(Instance 阅读全文

posted @ 2011-06-15 17:16 Tony Liu 阅读(476) 评论(0) 推荐(1) 编辑

RTTI(三)相关函数1【转自大富翁】

摘要: 第三部分RTTI相关函数GetTypeData 函数GetPropInfo 函数 FindPropInfo 函数 GetPropInfos 函数 SortPropList 函数 GetPropList 函数GetObjectPropClass 函数 PropType / PropIsType 函数 IsPublishedProp 函数 IsStoredProp 函数 FreeAndNilProperties 函数 SetToString / StringToSet 函数 GetEnumName / GetEnumValue / GetEnumNameValue 函数 GetTypeData 函 阅读全文

posted @ 2011-06-15 17:05 Tony Liu 阅读(253) 评论(0) 推荐(0) 编辑

RTTI(二)获取类型信息【转自大富翁】

摘要: 第二部分获取方法(method)的类型信息获取有序类型(ordinal)、集合(set)类型的 RTTI 信息 ⊙ 获取方法(method)的类型信息所谓方法就是以 of object 关键字声明的函数指针,下面的函数可以显示一个方法的类型信息:procedure GetMethodTypeInfo(ATypeInfo: PTypeInfo; AStrings: TStrings);type PParamData = ^TParamData; TParamData = record // 函数参数的数据结构 Flags: TParamFlags; // 参数传递规则 ParamName: Sh 阅读全文

posted @ 2011-06-15 16:53 Tony Liu 阅读(392) 评论(0) 推荐(0) 编辑

RTTI(一)简介【转自大富翁】

摘要: 第一部分RTTI简介类(class) 和 VMT 的关系类(class)、类的类(class of class)、类变量(class variable) 的关系 TObject.ClassType 和TObject.ClassInfo is 和 as 运算符的原理 TTypeInfo – RTTI 信息的结构 获取类(class)的属性(property)信息 ⊙ RTTI 简介RTTI(Run-Time Type Information) 翻译过来的名称是“运行期类型信息”,也就是说可以在运行期获得数据类型或类(class)的信息。这个 RTTI 到底有什么用处,我现在也说不清楚。我是在阅读 阅读全文

posted @ 2011-06-15 16:26 Tony Liu 阅读(627) 评论(0) 推荐(0) 编辑

2011年6月14日

CSharp中的Vector结构

摘要: 本节将开发一个结构Vector,来演示运算符重载,这个Vector结构表示一个三维矢量。如果数学不是你的强项,不必担心,我们会使这个例子尽可能简单。三维矢量 只是三个(double)数字的一个集合,说明物体和原点之间的距离,表示数字的变量是x、y和z,x表示物体与原点在x方向上的距离,y表示它与原点在y方向上的距离, z表示高度。把这3个数字组合起来,就得到总距离。例如,如果x=3.0, y=3.0, z=1.0,一般可以写作(3.0, 3.0, 1.0),表示物体与原点在x方向上的距离是3,与原点在 y方向上的距离是3,高度为1。 矢量可以与矢量或数字相加或相乘。在这里我们使用术语" 阅读全文

posted @ 2011-06-14 16:32 Tony Liu 阅读(3690) 评论(0) 推荐(0) 编辑

CSharp中Vector, ArrayList, HashMap 和Hashtable

摘要: 首先C#只有Hashtable,Hashtable表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。C#中没有HashMap,而HashMap是Java1.2引进的Map interface的一个实现.... 1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类; 2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。即是说,在多线程应用程序中,不用专门的操作就安全地可以使用Hashtable了;而对于HashMap,则需要额外的同步机制。但HashMap的同步问题可通过Collections的一个静态方法得到解决 阅读全文

posted @ 2011-06-14 16:09 Tony Liu 阅读(4074) 评论(0) 推荐(0) 编辑

DotNet的经典网站

摘要: 学习.net的经典网站(转)原文:dotnet学习参考网站学习.Net的经典网站还不错推荐给大家 原文—— 名称:快速入门 地址:http://chs.gotdotnet.com/quickstart/ 描述:本站点是微软.NET技术的快速入门网站,我们不必再安装.NET Framework中的快速入门示例程序,直接在网上查看此示例即看。 **************************************************** 名称:微软官方.NET指导站点 地址:http://www.gotdotnet.com/ 描述:上面的站点是本站的一个子站点,本站点提供微软.NET官方 阅读全文

posted @ 2011-06-14 14:55 Tony Liu 阅读(1388) 评论(0) 推荐(0) 编辑

CSharp中抽象类与接口的区别

摘要: 相同点: (1) 都可以被继承 (2) 都不能被实例化 (3) 都可以包含方法声明 (4) 派生类必须实现未实现的方法 区 别: (1) 抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。 (2) 抽象类是一个不完整的类,需要进一步细化,而接口是一个行为规范。微软的自定义接口总是后带able字段,证明其是表述一类“我能做。。。” (3) 接口可以被多重实现,抽象类只能被单一继承 (4) 抽象类更多的是定义在一系列紧密相关的类间,而接口大多数是关系疏松但都实现某一功能的类中 (5) 抽象类是从一系列相关对象中抽象出来的概念, 因此反映的是事物的内部共 阅读全文

posted @ 2011-06-14 14:41 Tony Liu 阅读(4259) 评论(0) 推荐(0) 编辑

csharp一个简单的死锁程序

摘要: Jeffrey Richter在《Windows核心编程(第5版)》中描述了一个死锁情况:假设线程Thread1和Thread2均需要独占方式访问互斥资源m_res1、m_res2,应用互斥对象Monitor在使用前Enter(相当于加锁)、使用后Exit(相当于解锁)。由于涉及到两个资源,此时需要特别注意加锁的顺序。如果两个线程的加锁顺序不同(Thread1先锁m_res2、Thread2先锁m_res1),此时容易发生死锁。依据该思路,下面给出了C#实现的完整程序代码: class Program{ private static object m_res1 = new object(); 阅读全文

posted @ 2011-06-14 14:14 Tony Liu 阅读(1224) 评论(0) 推荐(0) 编辑

csharp类、引用类型(class)与结构、值类型(struct)的区别

摘要: 数据在内存中的存储位置,取决于它的数据类型,在C#中,分为值类型和引用类型,值类型的数据存储在内存中的堆栈中,每个变量或程序都有自己的堆栈,不可以共用一个堆栈地址。当数据一个值类型的变量传递到另一个相同类型的变量时,会在堆栈中分配两个不同的地址。 而引用类型的数据存储在内存中的堆中,可以不同的变量或程序共同使用同一个位置的数据。当数据从一个引用类型的变量传递到另一个相同类型的变量时,只是把这个变量的引用地址传递给新的变量,同时引用当前堆中存储的数据。 可以通过实例得到详细结论:using System;using System.Collections.Generic;using System. 阅读全文

posted @ 2011-06-14 13:29 Tony Liu 阅读(4389) 评论(0) 推荐(0) 编辑

csharp中的结构

摘要: 1.结构的声明结构是用户自定义的值类型w 公有成员使用PascalCase规则w 非公有成员使用camelCase规则w 可以使用结尾分号struct Pair { public int X, Y; //公有变量名单词的首字母大写(PascalCase规则)}struct Pair { private int x, y; //非公有变量名第一个单词的首字母小写(camelCase规则)}struct Pair { int x, y; //缺省的访问修饰符是private};//可以有结尾分号 结构是C#程序员用来定义自己的值类型的最普遍的机制。结构比枚举更强大,因为它提供函数、字段、构造函数、 阅读全文

posted @ 2011-06-14 10:40 Tony Liu 阅读(2789) 评论(0) 推荐(0) 编辑

Csharp关键字----delegate(委托)

摘要: Delegate类简介 ------------------------ 命名空间:System 程序集:mscorlib(在 mscorlib.dll 中) 委托(Delegate)类是一种数据结构,通过它可引用静态方法或引用类实例及该类的实例方法。 以往的界面编程中我们应该都接触过各种类型的事件驱动(event driven)的处理模式, 在这种模式里,我们定义相应事件触发的函数。 例如: Button1 的 Click事件,我们可以编写Button1_Click 或 Btn1Clicked等函数来做相应的驱动处理。 而事件与驱动函数的对应关系就是通过委托(Delegate)类来关联的。 阅读全文

posted @ 2011-06-14 00:15 Tony Liu 阅读(1717) 评论(0) 推荐(0) 编辑

csharp中的委托、委托和时间对Observer设计模式的意义

摘要: 引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。将方法作为方法的参数我们先不管这个标题如何的绕口,也不管委托究竟是个什么东西,来看下面这两个最简单的方法,它们不过是在屏幕上输出一句问 阅读全文

posted @ 2011-06-14 00:04 Tony Liu 阅读(1462) 评论(0) 推荐(0) 编辑

导航