2010年2月5日

赶集去了,你准备好了么?----谈谈正则表达式的内容采集

摘要: 不知阁下是否都听说过赶集网,我想对大多数人来说,应该不会太陌生,有时无聊之时,还是可以去逛逛,了解社会百态,熟悉人间风情,呵呵。 赶集网基本是按照全国城市分类的,每一个城市是相同界面,不同内容。你可以在不同城市中切换,以便关注该城市的各种信息。对应每个城市,赶集网又有不同的分类,基本上涵盖了生活的方方面面。进入一个特定的分类,你可以看到相关的用户文章,有些事经纪人发的,有些是普通老百姓发的,各取所需,各观所好。 本文主要是分析赶集网的内容获取及采集程序的工作方式,介绍下一些正则表达式的处理和利用。 阅读全文

posted @ 2010-02-05 21:36 伍华聪 阅读(2710) 评论(10) 推荐(1)

Oracle中对超长内容的处理,避免出现can bind a LONG value only for insert into a LONG column错误

摘要: 本人在做一个新闻内容的模块的时候,发现如果内容在4K以上的字符串会出错,得到的内容会是乱码(也就是被自动截断),如果小于4K,那么就不会有问题。 原来采用了Varchar2的类型来存储,但发现后修改为Clob类型的也出现同样的问题,而且发现日志的错误是:System.Data.OracleClient.OracleException: ORA-01461: can bind a LONG value only for insert into a LONG column。 由于Clob类型是可以存放很大类型的文本数据的,不会是数据库字段容量不够,因此检查插入和更新的C#代码,发现原来的代码是这样的: 阅读全文

posted @ 2010-02-05 12:15 伍华聪 阅读(13299) 评论(3) 推荐(1)

2010年1月26日

Socket开发探秘--基于Json格式的数据协议收发

摘要: 前面发表过两篇随笔:《Socket开发探秘--基类及公共类的定义》和《Socket开发探秘--数据封包和拆包》,介绍了Socket方面的开发。本文继续探讨使用Json格式来作为Socket收发协议方面的技术问题。 前面说到,收到的Socket数据经过粗略的解析后,就是PreData类型的数据,这个是通用的数据格式,我们需要进一步处理才能转化为所能认识的数据对象(实体类对象),同样,我们发送数据的时候,内容部分肯定是按照一定协议规则串联起来的数据,那么我们就需要把实体转化为发送的数据格式。综上所述,我们通过实体类,必须实现数据的发送和读取的转换。 由于数据的封包拆包是一个繁琐的过程,代码重复性比较多,而且也容易出错。前面介绍过设计一个基类,我们把所有对数据的拆包和封包,利用反射机制,减少我们的代码量,提高代码的优雅性。 但是后来有人建议,可能使用Json格式的数据内容可能更好,确实,如果是采用以|分割符号的内容,有一个缺点,就是数据内容比较难懂(有时候我们还是需要分析数据包的),Json会更易读一些。 另外,使用Json可以脱离字段顺序的关系,可以向后兼容一些历史的协议,例如首次定 阅读全文

posted @ 2010-01-26 19:59 伍华聪 阅读(21323) 评论(3) 推荐(2)

2010年1月25日

用户输入查询与拼音首字母的结合,提高用户的操作体验

摘要: 我们在界面设计的时候,不管是Web的还是Winform的程序,为了方便用户对各种数据进行操作,提高用户的操作体验,都是一个永恒不变的话题,需要尽可能地提高。本文抛砖引玉,介绍本人在Web和Winform中使用拼音简码以及智能提示的具体例子,对这个话题进行探讨。 在下面的Web界面中,我们可以通过拼音首字母或者部分中文内容,来模糊搜索(类似Google搜索的智能提示),一个方便用户搜索,第二个有效利用Ajax技术来提高用户的体验。在Winform界面中,同样也可以做到智能提示,由于Winform中的响应速度比较快,我们可以根据输入的首字母或者部分中文快速更新列表内容即可,如下图所示。 阅读全文

posted @ 2010-01-25 22:48 伍华聪 阅读(10456) 评论(31) 推荐(26)

2010年1月22日

推荐两个界面原型设计工具--GUIDesignStudio 和 Mockups For Desktop

摘要: 前段时间,有幸参加一次高级软件架构师的培训,授课老师介绍了两个很好玩的界面原型设计工具:GUIDesignStudio 和 Mockups For Desktop,现分享一下,截图说明,洗洗眼球,权当娱乐。 以前在做界面原型设计的时候(不多,但有时候要做的),印象中多数用Visio或者一些UML工具来大致描述一下,效果及交互性较差,不知您是否做过这方面的工作,不管有没有,我们来了解下这两个比较有意思的东西吧。 阅读全文

posted @ 2010-01-22 19:33 伍华聪 阅读(87698) 评论(30) 推荐(20)

2010年1月20日

Web打印的解决方案之证件套打

摘要: 由于以前未接触过套打,一直觉得套打是一个比较神秘和麻烦的事情,因为打印机的位置总是需要调整的,你总不能硬编码吧?但是如果位置可调,有需要直观一些来处理,那就比较麻烦了。在前面介绍过《Web打印的解决方案之普通报表打印》的一片文章中提到过那个打印控件Lodop,做起套打来感觉还是挺方便的,至少位置调整界面不需要自己弄,位置嘛,也提供了自动保存的功能,不需要理会。 一般的套打,包含了几部分操作:打印预览、打印维护、打印设计。打印预览和打印维护是面向终端用户的,打印维护是指内容不能修改删除、但位置可以调整,给不同的打印机不同的尺寸打印提供调整位置的可能性。打印设计是面向开发人员的,开始需要通过这个功能来设计好套打的界面,就是根据套打证件的背景图片,大致摆放好各个内容的位置。 阅读全文

posted @ 2010-01-20 12:14 伍华聪 阅读(20250) 评论(3) 推荐(8)

2010年1月15日

Web打印的解决方案之普通报表打印

摘要: 做过很多的Web项目,大多数在打印页面内容的时候,采用的都是通过Javascript调用系统内置的打印方法进行打印。打印的效果及控制性虽然不是很好,但是也能勉强使用,应付一般的打印还是可以的了。采用此种方法,不需要安装任何控件,具有很好的兼容优势,不过出来的报表内容,好像控制起来会比较麻烦一些,特别对于一些报表方面的打印,需要输出复杂的内容是,也有一定的缺陷,但总体来说,也是一个较好的选择。 后来在需要做一些证件套打方面的工作,这个控件就做不到了,因此需要一种方法或者控件,能够较好处理套打方面的事情。无意间,发现一个比较好的打印控件,支持各种格式的打印,还有我关心的证件套打功能,功能强大,使用也很简单的,非常值得推荐。 本篇主要介绍Web打印中的普通报表的打印功能。 阅读全文

posted @ 2010-01-15 19:52 伍华聪 阅读(24921) 评论(12) 推荐(8)

2010年1月14日

如何获取并设置自己的浏览器为默认浏览器

摘要: 在.net里面,有一个WebBrowser控件,这个控件可以用于很多用途,很多人用来定做自己的浏览器,本文谈谈如何获取默认浏览器的设置,并介绍如何设置自己的浏览器为默认浏览器的小技巧。 先看一个小的界面图形,用来更好理解这个功能的用途,如下图我们可以看到需要获取到系统的默认浏览器名称,并提供设置默认浏览器功能。 其实,这些操作都是和注册表相关的内容,这些内容保存在键HKEY_CLASSES_ROOT\http\shell\open\command中的默认值里面,而默认浏览器的名称保存在HKEY_CLASSES_ROOT\http\shell\open\ddeexec\Application的默认值里面。 基本上我们修改这两个键值就可以实现默认浏览器的设置了。我封装了一些方法,现发布出来,留底,供娱乐,搏一声好,足矣! 阅读全文

posted @ 2010-01-14 12:57 伍华聪 阅读(9291) 评论(4) 推荐(5)

2009年12月28日

使用NVelocity自动生成Favorite收藏夹的导航页面

摘要: 你是否碰到你的收藏夹凌乱不堪,或者很多收藏网页地址虽然分类,可是使用起来却感觉不太好,有没有想过把你的收藏夹内容自动生成一个网页的导航页面生成类似Hao123(http://www.hao123.com/),或者番茄花园导航(http://www.tomatolei.com/)一样的网页,用来迅速导航到自己的网址呢? 即使使用场景有争议,不过我们也来关注一下这种自动生成页面的技术吧,说不定可以使用在合适的环境下,如下面我测试了两个类别的收藏夹Favorite目录下,其中“搜索引擎”和“新闻网络”两个目录是我的测试收藏夹分类,Icon和Images是我构造生成主页所需要的一些内容目录。我们根据Index.htm来生成index.htm来作为导航的主页面。 阅读全文

posted @ 2009-12-28 21:04 伍华聪 阅读(3102) 评论(2) 推荐(2)

2009年12月27日

使用Asp.net的TreeView来构建用户选择输入

摘要: 选择优于输入,这是一般人的共识,面对繁多的数据,提供良好的选择界面,一方面增强用户的界面体验,一方面也提高了数据的准确性,更节省了用户的宝贵时间。一般的单项数据选择可以使用DropdownList控件来实现,但对于有多个选择性输入,而且输入有层次关系的内容,最好选择TreeView控件来实现。 阅读全文

posted @ 2009-12-27 21:30 伍华聪 阅读(3748) 评论(14) 推荐(6)

2009年12月14日

WinForm界面开发之酒店管理系统--报表篇

摘要: 报表模块几乎是各种大小管理系统都是必不可少的一个模块,而往往报表都需要有数据查看、打印、导出、数据汇总等方面,原本我在准备做酒店管理系统的时候,曾经考虑过试用ActiveReport报表控件的,因为我以前的送水管理系统就是采用这个来做报表的,因此曾经写过一篇文章《ActiveReport报表开发---谈谈ActiveReport的中文化问题 》,提前为做中文报表做准备。 如果使用这个ActiveReport来实现我的报表功能的话,这样如果我的报表非常多,那么这个工作量就比较吓人了,最后还是放弃了这种方式,采用了改造我的分页控件的方式来实现,既可以方便数据的展示,有可以继承了报表预览打印、导出等功能,而且这样做的好处就是,我省却了不用设计那么多报表格式文件的时间,并且总体效果也非常不错。 阅读全文

posted @ 2009-12-14 20:55 伍华聪 阅读(16183) 评论(14) 推荐(6)

2009年12月13日

Socket开发探秘--数据封包和拆包

摘要: 在上篇《Socket开发探秘--基类及公共类的定义 》中介绍过,所有受到的数据包,经过系统的预处理后,都会得到一个PreData的数据实体,该实体包含了协议头、协议内容和所属用户的ID。PreData是定义了一个标准的协议数据格式,包含了协议关键字、协议内容、用户标识的内容。 前面说了,我们数据是通过实体类作为载体的,我们知道,收到的Socket数据经过粗略的解析后,就是PreData类型的数据,这个是通用的数据格式,我们需要进一步处理才能转化为所能认识的数据对象(实体类对象),同样,我们发送数据的时候,内容部分肯定是按照一定协议规则串联起来的数据,那么我们就需要把实体转化为发送的数据格式。综上所述,我们通过实体类,必须实现数据的发送和读取的转换。 阅读全文

posted @ 2009-12-13 15:08 伍华聪 阅读(15568) 评论(13) 推荐(2)

Socket开发探秘--基类及公共类的定义

摘要: Socket开发是属于通信底层的开发,.NET也提供了非常丰富的类来实现Socket的开发工作,本篇不是介绍这些基础类的操作,而是从一个大的架构方面阐述Socket的快速开发工作,本篇以TCP模式进行Socket程序的开发介绍,以期达到抛砖引玉的目的。 阅读全文

posted @ 2009-12-13 14:37 伍华聪 阅读(7598) 评论(8) 推荐(3)

2009年11月29日

WinForm界面开发之酒店管理系统--控件篇

摘要: 在上篇《WinForm界面开发之酒店管理系统--开篇》中介绍了一些界面的东西,本篇开始抽丝剥茧,细致分析里面的控件组成,并公布相关的控件资源,以飨读者。 本篇主要介绍按钮控件以及房间状态视图的控件开发思路,希望抛砖引玉能,给各位读者的思绪及灵感有一个引桥般的铺垫。 阅读全文

posted @ 2009-11-29 22:52 伍华聪 阅读(15169) 评论(9) 推荐(2)

WinForm界面开发之酒店管理系统--开篇

摘要: 星移斗转,时光似箭,不知不觉中,酒店管理系统的开发从开始到现在的结束,已经2个月了,2个月的业余时间,2个月的生活情趣,都寄托在这个软件当中,经历了各种艰苦和困惑,终于得以修成正果---深田之星酒店管理系统的顺利发布。技术的历程是一个开拓进取、攻克难题的历程,其中有困惑也有兴奋,有苦涩也有甜蜜, 在这个过程中,再一次检阅了我的Database2Sharp代码自动生成的开发工具的,再一次从“深田之星送水管理系统”进行升华,技术从来没有尽头,只有不断完善,以及不断的超越和创新。在这个过程中,总会产生一系列的Q&A,碰到了一个难题,如何寻找相应的解决方法,就是非常有趣的问题了。 写这个随笔的初衷主要不是宣传我做的软件,而是有感而发,感随物现,介绍在其中历程的一些思考和解决方法,介绍做这个酒店管理系统的一些界面和非界面,代码和非代码的东西,和大家做一个交流,希望大家能我从言之无物、略表空洞的文章中捡趣拾遗,略受启发。言毕,晒上所做东西,在继续....... 阅读全文

posted @ 2009-11-29 15:18 伍华聪 阅读(22244) 评论(41) 推荐(3)

深田之星酒店管理系统2009

摘要: 深田之星酒店管理系统2009 文件大小:5,000 KB更新时间:2009-11-29下载地址:文件大小:5MB在线帮助: 产品说明如下:★软件功能  深田之星酒店管理系统2009,是一个集客房管理、茶室管理、KTV管理三大业务管理功能于一体的酒店业务综合管理系统,系统界面优美大方,操作直观简单。软件覆盖整个酒店业务管理的方方面面,并具有丰富、强大的业务报表功能模块;软件操作具有严格的... 阅读全文

posted @ 2009-11-29 14:12 伍华聪 阅读(2642) 评论(7) 推荐(1)

2009年11月18日

如何使用C#进行Visio二次开发-总结版

摘要: 很久没有写C#进行Visio二次开发的文章了,这次温习一下Visio二次开发的相关知识,全面总结一下Visio 二次开发的方方面面。 本次主要根据我在Visio二次开发过程中,获得的一些实际系统开发经验以及学习历程,分三个方面对下面内容进行介绍:1)介绍配电网络管理系统的架构设计思路;2)介绍C#进行Visio开发的准备工作;3)Visio的编程对象模型。 阅读全文

posted @ 2009-11-18 20:02 伍华聪 阅读(32394) 评论(10) 推荐(12)

2009年11月13日

发送带嵌入图片邮件之SMTP实现和ESMTP实现

摘要: 接触过邮件发送的人,可能对SMTP协议以及对dotnet下面的SMTP类的操作应该不会陌生,但可能不一定了解ESMTP是什么东西,下面我们对它先做一个介绍,然后再详细介绍两种方式在发送嵌入图片(不是附件模式)操作的实现。说白了,ESMTP就是通过Socket流方式和邮件服务器进行交互,基本上目前所有的服务器都会提供对ESMTP协议的支持,SMTP协议在dotnet中实现就是通过调用System.Net.Mail .SmtpClient实现的。发送嵌入图片或者文件邮件的原理就是,把图片资源提交(和附件类似方式,但是不同),然后通过修改HTML的IMG标识的SRC实现实现内容的相对引用的。 阅读全文

posted @ 2009-11-13 21:44 伍华聪 阅读(8063) 评论(7) 推荐(3)

如何使用正则表达式进行QQ校友的数据采集

摘要: QQ校友里面很多数据是按照学校进行归类的,因此,我们只要知道学校的名称,根据一些条件就可以查找您感兴趣的校友了。 QQ校友的数据查看或者查询,是需要登录才行的,QQ校友的登录,可以让用户通过输入验证码方式进行登录。博客已经有很多大牛找出很多解决方法,在此不说这块,我们这里介绍下,如何分析页面,合理使用正则表达式,获取所需要的数据。 阅读全文

posted @ 2009-11-13 20:20 伍华聪 阅读(3989) 评论(6) 推荐(1)

2009年11月12日

关于MSHTML控件使用的问题

摘要: 我们一般在Winform的开发中,需要使用HTML的地方,很多时候,需要用到WebBrowser这个控件,这个控件是引用了MSHTML.dll这个COM类库的,在开发的时候感觉很好,很强大,可是发布给客户的时候,很多时候,就因为这个COM控件,会出现很多令人头痛的问题,因为这个控件导致的问题,也有很多解决方法,但是问题还是经常发生。 如果不使用微软这个自带的HTML浏览器控件,那么还有一个代替的选择,就是使用另外一个COM控件,但是相对比较小,不依赖于MSHTML.dll程序集的。 阅读全文

posted @ 2009-11-12 20:09 伍华聪 阅读(8036) 评论(3) 推荐(2)

导航