zoukankan      html  css  js  c++  java
  • 在 Delphi 中判断一个字符是中文的方法

    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日:感谢滚龙的指点在 Delphi 中判断一个字符是中文的方法 - 自助者天助之 - 冰冻三尺,非一日之寒,已将代码改写如下:

    //判断字符是否是汉字 
    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 
  • 相关阅读:
    java mybatis 新增记录 与 insertSelective 保存问题
    01 开发环境搭建
    2021年:系列文章总结
    在win10上安装MTK驱动(附驱动下载链接)
    Gerrit 大量代码提交流程优化
    mysqldump的使用
    配置 Gerrit 迁移
    解决:编译安卓源码时 JDK 报错 error='Not enough space' (errno=12)
    修改Git Commit提交记录的用户名Name和邮箱Email
    Android 各层架构
  • 原文地址:https://www.cnblogs.com/rogge7/p/6118588.html
Copyright © 2011-2022 走看看