• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

在Delphi中判断一个字符是中文的方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

http://blog.163.com/l1_jun/blog/static/143863882011741124581/

由于 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: AnsiString): Boolean; //转载时修改
begin 
  Result := (ByteType(ch, 1) <> mbSingleByte); 
end; 


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

本文引用通告地址: http://blog.csdn.net/wlnh_2004/services/trackbacks/270866.aspx 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
(转)Delphi工程文件说明发布时间:2022-07-18
下一篇:
ZeosLibForDelphiXE(2011)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap