Delphi

本类阅读TOP10

·分布式网络考试系统原型分析及实现
·游戏外挂设计技术探讨①
·使用HOOK随心监视Windows
·Delphi 水晶报表打包解决
·试题库开发中非文本数据的处理
·如何将几个DBGRID里的内容导入同一个EXCEL表中....的问题
·如何使用Delphi设计强大的服务器程序
·工人线程中关闭窗体的实现
·用DLL方式封装MDI子窗体。
·支持XP下托盘栏气球提示的托盘单元

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
CodeColor相关(一) 背景

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

?         第一部分:背景

        一、本人背景
        专业:土木工程;工作:空军某场站战勤参谋;在工作中使用计算机主要是文本编辑,编程序纯属个人爱好,业余中的业余编程爱好者,由于水平实在有限,此次公开代码着实下了好大一番决心 。

        二、程序背景
        到 CSDN 的 Blog 浏览时,发现大部分源码添加进网页后格式都丢失了,再加上没有语法着色,看起来比较困难。偶尔发现有的网页中显示的代码和在 IDE 中的效果一样,就想到如果用 Delphi 写这样一个小程序,先把要写入网页中的源代码用 Html  语法处理一下,然后再粘贴进网页,就可以达到想要的效果了。

        写这个程序遇到的第一个困难是 Delphi 词法分析器,由于不是学计算机专业的,对此一窍不通,为此专门到书店买了一本《编译原理》,把词法分析部分看了几天,结果只知道有“正规表达式”和“有限自动机”这两个概念,到底这两个概念该怎么运用还是一无所知。

        写到这里,要感谢 李马  和他的 行云流水网站  提供的 C 语言版 《Pascal 词法分析器》源代码,好在大学时学的 C 语言还没丢,我用 Delphi 改写了他的程序,并针对语法上色和格式化进行了功能扩展。程序写完后基本上实现了我想要的功能,自己的想法实现了,当时的感觉非常兴奋。

处理效果如下:
//┏━━━━━━━━━━━━━━┓
//┃代码着色:CodeColor v1.0  
//┃来自:悄然无声的 Blog     ┃      
//┗━━━━━━━━━━━━━━┛


//判断字符是否为多字节字符
function TCodeColor.IsMBCSChar(const ch: Char): Boolean;
begin
  Result := (ByteType(ch, 1) <> mbSingleByte);
end;

        三、程序的缺陷
        毕竟是业余的,程序中可能还有很多缺陷,功能也比较单一,特别是许多解决问题的方法在专业程序员眼中可能“很土”,说到这里又要感谢一个人:滚龙 ,正是他以严谨的作风对我的一个小函数提出了三次改进意见(在这里),才让我决定把代码公开让大家审查并改进。

        四、程序进度
        2005年1月26日:初步完成;     
        2005年1月27日:1、增加了对中文变量的支持;2、固定了表格的宽度;3、设定了表格背景颜色;
        2005年1月29日:重新组织了程序结构,设计了三个类:TCodeColor、TCC_Delphi、TCC_CSharp;C# 部分还未实现,但预留了接口;

        五、声明
        这仅仅是个很小的程序,如果觉得对您还有用,欢迎随意使用和改进,转贴请注明出处。如果可能的话,改进的程序请拿出来大家分享。




相关文章

相关软件