03 2005 档案

摘要: 增强型的模式匹配算法,KMP查找算法VB.NET 2005泛型实现。也不知道用的对不对,但是个人感觉好像是对的。不过做测试的时候发现如果是字符串(字符数组)的匹配,用KMP算法比.NET自己的String.IndexOf还要慢。不知道.NET怎么做的,可能也是KMP算法吧。

和2003版的一样,主函数KMPSearch进行实际的匹配操作。子函数KMPSearchGetNextArray负责计算匹配串每个项目单位对应的权值。只不过加入了(Of T As IComparable(Of T))泛型约束。阅读全文
posted @ 2005-03-31 13:03 妖居 阅读(1036) | 评论 (3) 编辑
摘要: 增强型的模式匹配算法,KMP查找算法。全称是克努特-莫里斯-普拉特算法。是一种在一个串内查找第一个匹配子串位置的算法。之所以是增强型的,是应为它修改普通算法中失配的时候,被查找串的查找起始位置只向后移动一个单位的办法。通过首先分析匹配串的逻辑,给每一个项目位置加入一个权值。这样在失配的时候,就可以根据失配项目单位所对应的权值,顺移多个位置再次匹配。具体的算法可以参考《数据结构》一书。

现在我用VB.NET 2003实现这个算法。主函数KMPSearch进行实际的匹配操作。子函数KMPSearchGetNextArray负责计算匹配串每个项目单位对应的权值。

稍后推出使用VB2005泛型的KMP查找算法。阅读全文
posted @ 2005-03-31 11:54 妖居 阅读(1056) | 评论 (8) 编辑
摘要: 只支持单继承的VB.NET为了解决多继承的问题,引入了接口的概念。接口可以在一定程度上解决单继承给我们设计上带来的一些缺陷,并且接口是类型安全的。本文简单介绍了关于接口的概念,主要篇幅集中到接口的使用上面。
前提知识:VB.NET、OOP。阅读全文
posted @ 2005-03-29 14:44 妖居 阅读(4547) | 评论 (14) 编辑
摘要: 对于DLL文件,取出他的Assembly信息可以使用Reflection.Assembly.LoadFrom(Path)语句来实现。但是这样读取之后,如果我们的程序不退出,这个DLL就会被我们的程序进程锁死,不能修改或删除了。为了解决这样的问题,我们通过AppDomain(应用程序域)来实现。
前提知识:MarshalByRefObject,Reflection.Assembly。阅读全文
posted @ 2005-03-21 16:17 妖居 阅读(1257) | 评论 (1) 编辑
摘要: 进一步阐述如何通过参数定制我们的Event事件操作以及随后的操作。通过OOP的办法将修改Event类功能所导致的代码修改降到最低。阅读全文
posted @ 2005-03-18 10:41 妖居 阅读(847) | 评论 (0) 编辑
摘要: 通过定义Event内的参数来达到让使用者控制Event事件的相关操作。阅读全文
posted @ 2005-03-17 11:25 妖居 阅读(949) | 评论 (0) 编辑
摘要: 简单阐述了.NET下面的Event是使用方法。以及如何编写一个带有Event的Class及如何抛出Event,使用者如何向普通.NET类一样使用这个Event。阅读全文
posted @ 2005-03-16 15:26 妖居 阅读(1274) | 评论 (0) 编辑