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

国际化(转换GB2312到Big5,Shift-JIS)

 
helppass
一般會員


發表:1
回覆:0
積分:0
註冊:2003-09-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-13 11:50:28 IP:218.94.xxx.xxx 未訂閱
转换GB2312到Big5,Shift-JIS和为国际化程序自动生成pas国际化源文件
附加檔案:46434_CodeTransEx.zip
iamjsn
初階會員


發表:78
回覆:95
積分:44
註冊:2002-08-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-08 11:15:59 IP:203.204.xxx.xxx 未訂閱
請問一下各位有下載使用的人,我下載後用d7直接compile Demo.Dpr後,執行第二頁"?上??? BIG5 ?字",卻發生錯誤說,查了一下不知為何, 只知在 ch1 := Ord(n[1]);//做到這裏會發生錯誤,j=36時就掛了 但開啟作者大大編好的那隻demo.exe執行同樣的動作卻又正常,不知何解?     
引言: Function TranslateGBK2BIG5byString(s:String):String; Label 1; Var i,j,k: Integer; t,u,n: String; ch1, ch2: Byte; Begin i := Length(s); t := ''; j := 1; TranslateGBK2BIG5byString := t; If i > 0 Then Begin While j <= i Do Begin n := MidStr(s, j, 1); try ch1 := Ord(n[1]);//做到這裏會發生錯誤,j=36時就掛了 except Showmessage(n inttostr(j)); end; If j 1 > i Then ch2 := 0 Else Begin n := MidStr(s, j 1, 1); ch2 := Ord(n[1]); End; If ((ch1 >= 129) And (ch1 <= 254)) Then Begin If (((ch2 >= 64) And (ch2 < 127)) Or ((ch2 > 127) And (ch2 <= 254))) Then Begin k := trunc((( ch1 - 129 ) * 191 (ch2 - 64)) * 2); If ((k > 48131) Or (k < 0)) Then Begin t := t Chr(ch1); Goto 1; End; u := ''; u := u Chr(Code[k]); u := u Chr(Code[k 1]); t := t u; Inc(j); End Else t := t Chr(ch1); End Else Begin t := t Chr(ch1); End; 1:Inc(j); End; TranslateGBK2BIG5byString := t; End; End;
系統時間:2024-07-05 23:56:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!