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 中判断一个字符是中文的方法 - 自助者天助之 - 冰冻三尺,非一日之寒](http://blog.csdn.net/Emoticons/thumbs_up.gif)
//判断字符是否是汉字 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