全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1533
推到 Plurk!
推到 Facebook!

ansi開頭的function與沒有的差別

尚未結案
airwei
一般會員


發表:19
回覆:7
積分:5
註冊:2002-12-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-09 14:17:39 IP:210.17.xxx.xxx 未訂閱
大家好:我只知道ansi開頭的是處理multi byte的,但是我以AnsiCompareStr 測試但是看不出來哪裡的差別,可能我不了解multi byte的定義吧? 是否有誰可以給我asni與沒有ansi的範例,知道差別在哪裡? 下面是我用AnsiCompareStr 來比較, edit1.text 與edit2.text-->我都輸入相同的字(如"a" 或是 "我" 或是"A") 出來的結果都是相等,不知道什麼時候 相同的字才會不一樣 procedure TForm1.Button1Click(Sender: TObject); var result : Integer; begin // Compare some strings result := AnsiCompareStr(edit1.text, edit2.text); if result < 0 then ShowMessage(edit1.text ' < ' edit2.text); if result = 0 then ShowMessage(edit1.text ' = ' edit2.text); if result > 0 then ShowMessage(edit1.text ' > ' edit2.text); end;
wyndog
資深會員


發表:7
回覆:362
積分:348
註冊:2004-10-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-09 16:00:10 IP:60.248.xxx.xxx 未訂閱
AnsiCompareStr 看不出差別的 看看底下的 UpperCase 與 AnsiUpperCase 就知道有差了
test := #$A4   #$61; // #$61 就是小寫 a
// 你可以很明顯發現 UpperCase 出來的結果不一樣
// 因為 UpperCase 不支援 MultiByte 所以,a 被變成 A,組合出來的中文就不對了
ShowMessage(test   ':'   UpperCase(test));
// 二者皆相等,所以 AnsiUpperCase 支援 MultiByte
ShowMessage(test   ':'   AnsiUpperCase(test));
airwei
一般會員


發表:19
回覆:7
積分:5
註冊:2002-12-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-09 16:58:23 IP:210.17.xxx.xxx 未訂閱
其實 AnsiCompareStr 也是可以比較出大小寫 請看下面的範例: http://www.delphibasics.co.uk/RTL.asp?Name=AnsiCompareStr 只是我不解的是multibyte就是只差在大小寫相同跟不同嗎? 有multibyte就是大小寫相同嗎? 還是...
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-10 02:23:34 IP:61.64.xxx.xxx 未訂閱
妳在鑽牛角尖 multibyte 充其量 不過就是 「兩個」 byte 就是這樣而已 用一個 byte 來代表「符號」 跟兩個 bytes 來代表「符號」 沒什麼不同,都是將「符號」加以編排,給以編好而已 所以一個 byte 可以編 255 個符號 兩個 bytes 可以編 65535 個符號 就是這樣,不會很難 至於要怎麼編,就看編的人怎麼去處理,所以才有 ASCII , BIG5 , Unicode 等不同的編排方式 妳不會想要一一瞭解其中細節的,因為種類太多了,妳不過要寫個程式,又不是要發明新的編碼法 所以當妳使用 unicode 時,就必需使用 支援 multibyte 的函示,而當妳使用 Big5 時就使用一般函示即可 至於使用哪種,可以在 Font 的 property 中 CharSet 設定 不用想太多 至於何時會錯,就是當妳將兩個 byte 格式的字,擠進只能處理一個 byte 的函示時,就會出錯 當然 支援 multibyte 的函示一定不會出錯,所以都用他就好了
系統時間:2024-04-27 9:15:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!