從中文字中取得〈部首〉及〈筆畫〉的函式大公開!! |
|
geniustom
版主 發表:100 回覆:303 積分:260 註冊:2003-01-03 發送簡訊給我 |
會發表這篇文章..是因為看了 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=59465
試著幫她找資料..不過好像找不到有人在討論這種東西的...
因為這種東西給人的印象通常是要建一個龐大的DB..對應到字的部首及筆畫..
是一項浩大的工程..不過我不死心..找了快一天的資料(害我隔天唸書沒精神)
還去研究各種編碼..希望能從裡面找到一些蛛絲馬跡..
其中..我發現了:
>
< SRC="http://delphi.ktop.com.tw/loadfile.php?TOPICID=18655752&CC=417228"></IFRAME> 看到這兩篇文獻之後...我就開始著手製作...撰寫了以下幾個函式
function GetUnicodeWord(str:string):WideString; //將BIG字元轉成UNICODE function GetUnicodeCode(input:WideString):String; //將UNICODE碼 function GetBIG5Code(input:String):String; //取得BIG5碼 function GetWideString(code:integer):WideString; //將UNICODE碼轉成UNICODE字元 function GetWordCount(Str:string):Integer; //取得字數 function GetbushuCode(code:integer):WideString; //取得部首 function GetPenCode(code:integer):integer; //取得比畫於是..我利用了BIG5與UNICODE的特性..撰寫這核心部份不到50行的程式.. 在這邊和各位分享..< > 其中..因為部首的部份..有些無法以 > 明天繼續努力唸書..ㄏㄏ< > =程式是一種藝術 也是訓練自己的分析規劃= =是段落分明 或是雜亂無章= =是一言以敝 或是廢話連篇= =是一目了然 或是艱深難懂= 體會這份藝術 您會了解另一份喜悅與成就
附加檔案:59607_取部首.rar
|
Yaolung
一般會員 發表:0 回覆:3 積分:0 註冊:2002-08-03 發送簡訊給我 |
Dear 大大: 感謝您的分享! 從Big-5 Fundamental Functions (Chinese).htm 的資料內發現有四個字的筆畫是例外
Big-5碼 筆畫
1.耄 ACFE 10 -->被歸類到筆畫9
2.赭 BDEA 18 -->被歸類到筆畫15
3.銬 BE52 14 -->被歸類到筆畫15
4.薦 C2CB 17 -->被歸類到筆畫18 另外筆畫32的"籲(C67E)",也可以歸到例外內檢查。
所以GetPenCode()需先檢查是否為例外的字元,如果不是才可進到for-if轉換式轉換
|
geniustom
版主 發表:100 回覆:303 積分:260 註冊:2003-01-03 發送簡訊給我 |
引言: Dear 大大: 感謝您的分享! 從Big-5 Fundamental Functions (Chinese).htm 的資料內發現有四個字的筆畫是例外 Big-5碼 筆畫 1.耄 ACFE 10 -->被歸類到筆畫9 2.赭 BDEA 18 -->被歸類到筆畫15 3.銬 BE52 14 -->被歸類到筆畫15 4.薦 C2CB 17 -->被歸類到筆畫18 另外筆畫32的"籲(C67E)",也可以歸到例外內檢查。 所以GetPenCode()需先檢查是否為例外的字元,如果不是才可進到for-if轉換式轉換 >>< face="Verdana, Arial, Helvetica"> Yaolung您好...謝謝您的意見.. 這個問題我之前在寫的時候有注意到... 其實有例外的字也不算多..我是純研究性質的..因為我太懶了< > 所以如果針對有需求的人們..還需要再加以改進喔< > 其實不只big5有例外字..unicode也有...都是因為原本的標準少排了一些字 後來才補進去的.. 改進方法也不難...只需要在 function GetbushuCode(code:integer):WideString; //取得部首 function GetPenCode(code:integer):integer; //取得比畫 這兩個函式之前... 寫另外2函式..例如..GetBushuExcept及GetPenExcept 裡面定義一個例外矩陣..當找到這些碼時就直接傳回..不透過offset.. 並在GetbushuCode及GetPenCode一開始的地方分別加入這兩個函式 這樣就很完美囉 =程式是一種藝術 也是訓練自己的分析規劃= =是段落分明 或是雜亂無章= =是一言以敝 或是廢話連篇= =是一目了然 或是艱深難懂= 體會這份藝術 您會了解另一份喜悅與成就 |
chris
一般會員 發表:1 回覆:10 積分:2 註冊:2002-09-13 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
|
chris
一般會員 發表:1 回覆:10 積分:2 註冊:2002-09-13 發送簡訊給我 |
|
shortie
一般會員 發表:0 回覆:1 積分:0 註冊:2005-08-17 發送簡訊給我 |
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
CJK Radicals In Unicode 特幫 geniustom 版主 補上英文檔名壓縮檔 下載位置
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=81863 網友大大
請問你的作品,文章等 是否願意貢獻 給於KTOP網站,日後使用於DVD/VCD發售
如果可以請在簽名檔上宣告個人授權
以加速KTOP網站日後DVD/VCD資料的誕生
台灣災難都是事後算帳
無人飛行載具(Unmanned Aerial Vehicle,UAV)為什麼沒大量應用於救災行列 絲絲有2種
.net有很多種 一種治眼睛是MS 另一種治腦筋是Borland
|
fuji65
一般會員 發表:11 回覆:8 積分:3 註冊:2008-03-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |