亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 判斷一個字是否為big-5中文字? (2001年4月23日).txt

?? 自己對DELPHI學習的一點體會
?? TXT
字號:
判斷一個字是否為BIG-5中文字? (2001年4月23日) 

網友更新  分類:雜類   作者: zhuhongqing(推薦)  推薦:zhuhongqing   閱讀次數:221  
(http://www.codesky.net)  

--------------------------------------------------------------------------------
假如沒有中文應用組件的朋友, Win32 中有一個 IsDBCSLeadByte 這個 API 可用, 在 Delphi 的使用示例如下: 

Windows.IsDBCSLeadByte(byte(sTest[1])); 

(中文應用組件中的 IsLeadByte 其實也只是呼叫這個 API 而已) 

就連是不是中文字這樣簡單的問題可能都並不單純喔...., 這個問題之前被我想得有點鑽牛à尖了.... 也許原發問者寬達可以將 C 的程式借我看一下... :p 

先來看這個例子: 

procedure TForm1.Button5Click(Sender: TObject); 
var 
sTest: string; 
begin 
sTest := '中文字'; 
// 沒有應用組件的請用這個: Windows.IsDBCSLeadByte(byte(sTest[1])); 
if IsLeadByte(@sTest[1]) then ShowMessage('Yes 1'); 
if IsLeadByte(@sTest[2]) then ShowMessage('Yes 2 ???'); 
end; 
Yes1 顯示出來是對的, 可是 Yes2 也跑出來, 就..., 看來, 這個IsDBCSLeadByte可能只比對了一下內碼表就給結果了. 所以, 以下的程式: 

procedure TForm1.Button1Click(Sender: TObject); 
var 
s: string; 
i: integer; 
begin 
s := '中文字'; 
for i := 1 to Length(s) do 
if Windows.IsDBCSLeadByte(byte(s[i])) then 
ShowMessage(IntToStr(i) + '*' + IntToStr(Ord(s[i]))); 
end; 
1. 2. 3. 4. 5. 都是 Leadbyte, 連 TrailByte 也是..., 哈哈! 

當然, 這牽到中文字是 double-byte, 既然只判斷一個位置不準, 就有人利用兩個字元指標, 除了本身之外, 還比較參考另一個位置的字元, 然後得出一個比較準確的結果. 有興趣的朋友可以參考中文應用組件的以下兩個函數: 

function IsMBSLead( p1, p2: pchar ) : Boolean; 
function IsMBSTrail( p1, p2: pchar ) : Boolean; 
它們可能比較準一些. 

大家可能曾注意過, Windows 95 的 EditBox 並無法以滑鼠對半個中文字作出反白選擇標記, 所以, 我自以為找到一個很慢但準確的方法, 可是以下的情形呢? 

procedure TForm1.Button2Click(Sender: TObject); 
{$h-} 
var 
sTest: string; 
begin 
sTest := '中文字'; 
ShowMessage(Copy(sTest, 2, 2)); 
with TEdit.Create(Self) do 
begin 
Parent := Self; 
// Text := Copy(sTest, 2, 2); // 1. 中?? bug 
Text := sTest[2] + sTest[3]; // 2. 中?? bug 
// 不要懷疑, TrailByte + 另一個字的 Leadbyte 正好是 '中' 
// 不是 Copy 函數有問題 
SelStart := 0; 
SelLength := 2; 
if SelLength = 0 then ShowMessage('Not Chinese') 
else ShowMessage('Yes, Chinese word'); 
Free; 
end; 
end; 
沒錯啦! 結果是'中'字, 判斷'中'字是中文字也對, 但是各拆一個字的前後出來組出來的結果再判斷其一個字元是不是Leadbyte, 簡直是GIGO (Garbage In Garbage Out)的典型. 

說了半天, 問題被我複雜化了, 簡單的說, 

1. IsDBCSLeadByte 不是一可完全可靠的函數, 中文是 double-byte, 只以一個傳入字元值作判斷常常不準. 
2. 要正確將各個中文字斷開的程式可能很複雜. 用兩個 pchar 來作比較, 準確性會提高一點. 

只是提高一點而已, 有中文應用組件的朋友可以試試: 

var 
sOrigin, sTest: string; 
begin 
sOrigin := '中文字'; 
sTest := Copy(sOrigin, 4, 2); // 變成 憒 這個怪字 
if IsMBSLead(@sTest[1], @sTest[1]) then Showmessage('Leadbyte'); 
end; 
對的, 我又故意切開中文, 所以有人會講, 應該是 Copy(..., 3, 2)才是, 嗯! ê我怎麼知道該從哪裏開始呢?(哪裏是中文字)? 唉! 我腦筋又不清楚了... 

中文應用組件有 AnsiCopy() 視中文字為一個單位, ê以下的程式呢? 

var 
sTest: string; 
begin 
sTest := '中文字'; 
ShowMessage(AnsiCopy(sTest, 2, 2)); 
sTest := #156 + '中文字'; 
ShowMessage(AnsiCopy(sTest, 2, 2)); // ??中憒.. 
end; 
講了這麼多, 我的意見是: 回到原點, 除非有人故意搗蛋或者傳入的字串已經有問題, 或者ê個內碼根本沒有字, 否則只用IsDBCSLeadByte()就可以了吧. 


 
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清在线观看| 亚洲国产综合视频在线观看| 日韩精品国产欧美| 91在线视频播放地址| 精品国产区一区| 亚洲一区二区三区美女| 成人亚洲精品久久久久软件| 91精品免费在线观看| 亚洲日本在线视频观看| 国产精品 日产精品 欧美精品| 欧美伦理影视网| 亚洲免费av网站| 成人综合在线观看| 精品久久久久久久一区二区蜜臀| 亚洲一区二区三区四区不卡| 成人激情文学综合网| 久久一二三国产| 美女视频黄久久| 欧美伦理视频网站| 亚洲国产毛片aaaaa无费看| 99这里只有精品| 日本一区二区成人| 国产精品一区二区无线| 欧美一区二区三区在线观看视频| 亚洲一区二区综合| 91丨porny丨首页| 国产精品久久久一本精品| 国产一区二区三区四区五区美女| 91精品国产91久久综合桃花| 亚洲成人免费视频| 欧美怡红院视频| 一区二区三区不卡视频| www.66久久| 国产精品成人一区二区艾草| 成人性色生活片免费看爆迷你毛片| 久久综合一区二区| 国产呦萝稀缺另类资源| 精品久久久久久久人人人人传媒| 亚洲成人三级小说| 欧美精品成人一区二区三区四区| 亚洲国产精品一区二区久久| 欧美在线视频你懂得| 亚洲夂夂婷婷色拍ww47| 日本高清无吗v一区| 一级中文字幕一区二区| 欧美在线你懂得| 亚洲电影中文字幕在线观看| 欧美日韩精品欧美日韩精品| 午夜日韩在线电影| 欧美一二三区在线| 久草这里只有精品视频| 久久综合色婷婷| 国产98色在线|日韩| 国产精品素人一区二区| 波多野结衣中文字幕一区二区三区| 亚洲国产高清在线| 91视视频在线观看入口直接观看www | 亚洲视频 欧洲视频| 91丨九色丨黑人外教| 亚洲国产综合色| 337p亚洲精品色噜噜| 久草热8精品视频在线观看| 久久久久久久国产精品影院| 成人国产精品免费| 夜夜嗨av一区二区三区四季av | 国产一区二区三区综合| 欧美韩国日本综合| 色婷婷激情综合| 日韩国产在线观看| 色999日韩国产欧美一区二区| 国产精品久久福利| 欧美体内she精视频| 日韩va亚洲va欧美va久久| 久久综合色8888| hitomi一区二区三区精品| 亚洲综合色噜噜狠狠| 日韩一级大片在线| 国产91清纯白嫩初高中在线观看| 亚洲精品五月天| 91精品国产色综合久久| 国产精一品亚洲二区在线视频| 中文字幕一区二区三中文字幕| 欧美视频一区二区三区在线观看 | 亚洲视频1区2区| 91精品在线观看入口| 国产福利精品导航| 亚洲一级不卡视频| 2021国产精品久久精品| 91亚洲男人天堂| 美洲天堂一区二卡三卡四卡视频| 欧美经典一区二区三区| 在线观看欧美日本| 国产一区二区成人久久免费影院| 亚洲男人电影天堂| 欧美变态tickle挠乳网站| 99精品视频在线观看| 亚洲精品中文字幕在线观看| 欧美电影在线免费观看| 成人性色生活片免费看爆迷你毛片| 一级精品视频在线观看宜春院 | 不卡一区二区在线| 日韩精品免费专区| 国产精品免费观看视频| 6080亚洲精品一区二区| av一区二区三区四区| 蜜桃av噜噜一区二区三区小说| 国产精品乱人伦| 日韩美女主播在线视频一区二区三区| www.日韩在线| 韩国三级中文字幕hd久久精品| 一个色在线综合| 日本一区二区三区高清不卡| 欧美一区二区三区人| 91麻豆.com| 国产 日韩 欧美大片| 美女在线一区二区| 亚洲制服欧美中文字幕中文字幕| 中日韩av电影| wwwwww.欧美系列| 欧美乱妇15p| 91久久精品午夜一区二区| 国产成人av一区二区三区在线| 日本女人一区二区三区| 一区二区三区美女| 亚洲欧洲成人自拍| 国产亚洲精品资源在线26u| 欧美一区二区播放| 欧美日韩视频在线观看一区二区三区 | 精品国产91乱码一区二区三区 | 91亚洲精品久久久蜜桃| 激情五月激情综合网| 日日夜夜精品视频免费| 一区二区三区中文在线观看| 欧美国产激情一区二区三区蜜月| 日韩欧美色综合| 欧美精品99久久久**| 欧美午夜一区二区三区免费大片| 成人高清在线视频| 风间由美性色一区二区三区| 国内精品国产成人| 麻豆精品国产91久久久久久| 五月综合激情网| 亚洲成人免费在线观看| 亚洲一区二区偷拍精品| 一区二区三区四区五区视频在线观看 | 92精品国产成人观看免费| 成人性生交大片免费看视频在线| 国产在线观看一区二区| 精品一区免费av| 久久精品国产99久久6| 欧美96一区二区免费视频| 午夜精品福利一区二区蜜股av| 亚洲高清免费观看高清完整版在线观看| 日韩毛片一二三区| 亚洲欧美色图小说| 一区二区在线观看视频| 亚洲一区在线观看免费| 亚洲国产成人高清精品| 亚洲www啪成人一区二区麻豆| 亚洲成人综合视频| 午夜精品影院在线观看| 三级亚洲高清视频| 麻豆精品一区二区av白丝在线| 日本大胆欧美人术艺术动态| 美女mm1313爽爽久久久蜜臀| 美女国产一区二区三区| 激情偷乱视频一区二区三区| 国产一区久久久| 国产成a人亚洲精| av资源站一区| 色综合中文字幕国产| 91麻豆国产在线观看| 欧美亚洲一区二区三区四区| 精品视频免费在线| 日韩欧美中文一区二区| 精品国产sm最大网站免费看| 国产欧美一区二区精品婷婷| 国产精品美女一区二区三区 | 精品国产乱码久久久久久久 | 91成人在线免费观看| 欧美日韩精品久久久| 欧美成人vr18sexvr| 国产网站一区二区| 亚洲少妇最新在线视频| 亚洲国产美女搞黄色| 青青草国产精品亚洲专区无| 黑人巨大精品欧美黑白配亚洲| 风间由美一区二区三区在线观看| 91色porny在线视频| 欧美二区在线观看| 国产午夜精品久久久久久久 | 亚洲午夜国产一区99re久久| 欧美久久久久免费| 精品入口麻豆88视频| 国产精品久久久久影院色老大| 一区二区三区欧美日| 另类小说综合欧美亚洲| www.亚洲色图| 欧美精品日日鲁夜夜添| 久久亚洲精品国产精品紫薇|