原创 在 Delphi 中判断一个字符是中文的方法收藏

        由于 Delphi2005 支持中文标识符,在编写 PASCAL 词法分析器的过程中遇到了这个问题,经过多次试验找到了解决方案,至今未发现问题。

代码如下:

//判断字符是否是汉字
function IsHZ(ch: WideChar): boolean;
var
  i:integer;
begin
  i:=ord(ch);
  if( i<19968) or (i>40869) then
    result:=false else result:=true;
end;


2005年1月28日:感谢滚龙的指点,已将代码改写如下:

//判断字符是否是汉字
function TForm1.IsHZ(ch: Char): boolean;
begin
  //返回值为 0 的时候为单字节字符,返回值为 1 的时候为多字节字符
  if(ord(bytetype(ch,1))=1) then result:=true
  else result:=false;
end;


2005年1月31日:谢谢滚龙再次赐教,代码已收藏!
//┏━━━━━━━━━━━━━━┓
//┃代码着色:CodeColor v1.0  
//┃来自:悄然无声的 Blog     ┃      
//┗━━━━━━━━━━━━━━┛

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


一些感想:这应该就是正规军和游击队之间的差别了,正规军打仗讲究全局、战法、配合和协同;游击队战场狭小,眼界有限,条件落后,为了打鬼子经常用一些土办法。还好现在有了网络,要不然像我这样的业余爱好者就真的只能闭门造车了。

发表于 @ 2005年01月27日 18:11:00|评论(loading...)

新一篇: 用 Delphi 下载网页 | 旧一篇: 用 Delphi 学设计模式(二) 之 工厂方法篇 (原创)

用户操作
[即时聊天] [发私信] [加为好友]
悄然无声
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
悄然无声的公告
年轻时代 .Net Java C# 设计模式 数据结构 高等数学

版权声明:本博客文章如非特别注明,均为原创,作者保留所有权利!欢迎转载,转载请注明作者左洸和出处CSDN Blog

给我来信

文章分类
收藏
存档
软件项目交易
Csdn Blog version 3.1a
Copyright © 悄然无声