在 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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM