中文字 <-----> Big5 互換範例 |
|
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
發現『輸入法與字型程式設計討論區(Delphi)』最近有一些問題與此相關 電信碼轉big5碼
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25009 請問各位有沒有把中文轉成注音英文首字的 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26804 參考『將字碼轉換至文字』
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26356 故寫個範例,供各位參考,拋磚引玉一番 此範例主要有二個funtion function txt2code(itxt: string): string; //由中文字取得big5 碼(hex)
function code2txt(icode: string): string; //由big5 碼取得中文字
可接受整篇文章與中英文字串 橫線以下複製存檔,開一個form / button * 2 /memo * 3 即可執行
//--------------------------------------------------------
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls; type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
Memo2: TMemo;
Memo3: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} function code2txt(icode: string): string;
//由big5 碼取得中文字
var
wordHi, wordLo,i: integer;
begin
for i:=0 to length(icode)-1 do
if i mod 4=0 then
begin
//二種寫法皆可
// wordLo := strtoint('$'+ icode[i+1]+icode[i+2]+icode[i+3]+icode[i+4]) and $FF;
wordLo := strtoint('$'+ icode[i+3]+icode[i+4]);
//取得低位元
// wordHi := strtoint('$'+ icode[i+1]+icode[i+2]+icode[i+3]+icode[i+4]) shr 8;
wordHi := strtoint('$'+ icode[i+1]+icode[i+2]);
//取得高位元
result :=result+ char(wordHi) + char(wordLo);
end;
end; function txt2code(itxt: string): string;
//由中文字取得big5 碼(hex)
var
i: integer;
begin
for i := 1 to length(itxt) do
result :=result+ inttoHex(ord(itxt[i]),2);
end; procedure TForm1.Button1Click(Sender: TObject); begin
memo2.Text :='';
memo2.Text := txt2code(memo1.Text);
end; procedure TForm1.Button2Click(Sender: TObject);
begin
memo3.Text :='';
memo3.Text :=code2txt(memo2.Text );
end; procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Text :='';
memo2.Text :='';
memo3.Text :='';
end; end.
|
1010
一般會員 發表:0 回覆:1 積分:0 註冊:2003-05-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |