大力水手的Blog

大力水手语录

导航

[导入]Text To Picture

这几年以来,学生变化挺大的,早期的学生,上课的时候猛做笔记,生怕老师讲的内容自己没法记住,后来的学生,上课笔记到也作,更注重的是Code,只关心老师写的示例代码,能否Copy下来,现在的学生,嘿,您别说,作笔记,十个里头有一个就算好的了,Copy了代码还不算,还强烈要求上课要录像,以便自己下来以后,按照老师的操作步骤再次练习,说实话,Copy代码也罢,录像也罢,很多人以为将代码Copy下来,将录像放入自己的硬盘,这些内容就进入了自己的脑袋了,乖乖,你的脑子是内存,别说你不看录像,就是你看录像,在脑子中的存储时间也不会很长。
水手于是怒从心头起,恶向胆边生,代码呢?给你,没问题,想Ctrl+C,Ctrl+V,没门,所有的代码都是图片,让你小子抄,坏蛋。
开干。从Text到Pic,如果不考虑文字格式,那就太简单了,无非是把每行字符串用GDI打印到图片而已,但是那么作就和在编辑环境中的差别有点大了,友好程度差了点。
在编辑环境中,如果是关键字的话,颜色和其他的内容还不一样,因而可以先将关键字从中间分离开来,其实这个思路和语法高亮的思路是一致的,只不过,语法高亮应用在RichTextBox上或者网页上,在文本框和网页上的显示,只需要给定颜色就可以了,显示的工作交给文本框或者浏览器就可以了,现在我们的工作要自己控制显示,那就多少有点麻烦。
不管怎么说,思路和语法高亮的思路类似,那么就搜吧,看看有没有合用的。还不错,一堆一堆的结果。
  1. Actipro Software公司的SyntaxEditor,功能倒是挺齐全的,就是没有源代码。
  2. Wilco的SyntaxHighlighting,源代码有,真不错,做了两个版本,一个是TextBox版本,一个是Html版本,源代码有,实在是太复杂了,不利于水手这种笨蛋学习,和Copy,和Modify。

分析其中的代码,看的出来,这帮家伙是用正则表达式来查找拆分文本内容的,因而,换了一个关键字,“使用正则表达式分析C#语法”,嗯,不错,已经有个老哥把这事做了,这回,代码简单,功能也没有多太多,好,就从这里开始吧。

这老哥的“分析结果类”、“语法项类”、“高亮项目类”、“语法引擎类”、“C#语法引擎类”,他的“语法高亮类”和“C#语法高亮类”,没打算全用,因为我不需要,利用他的语法分析引擎将一篇源代码分析为很多分析结果对象,每个分析结果中,包含当前这个结果是属于哪一种类型的。

水手的工作,在于将凌乱无章的分析结果项,组合成一个个的打印行对象,然后利用GDI将这些内容输出为一个图片。

目前的版本支持C#语言的源代码,还不支持html,javascript,xml,aspx,java,c,sql,下一步准备将对其他语言的支持添加进去,优化语法引擎类,等这些都完善了,水手要公开源代码,当然是以图片的形式了。

下面是目前的效果图,一个问题实在是不好解决,看到了没?

竟然土鳖扛铁牛。


文章来源:http://blog.sina.com.cn/s/blog_49458c270100b2lh.html

posted on 2008-08-24 13:19  jack.zhou  阅读(212)  评论(0编辑  收藏  举报