本文整理自网络,侵删。
/// 半角转全角的函数unit Unit1;
interface
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, System.Types, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type TForm1 = class(TForm) Memo1: TMemo; Memo2: TMemo; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
// 半角转全角的函数function HalfToFull(InputStr: String): String;var TmpChar: Char; i: Integer;begin for i := 1 to Length(InputStr) do begin TmpChar := InputStr[i]; if (Ord(TmpChar) = 32) then begin InputStr[i] := Char(12288); // ' ' Continue; end; if (Ord(TmpChar) = 46) then begin InputStr[i] := Char(12290); // '.' Continue; end; if (Ord(TmpChar) < 127) then // 其它ASCII字符 begin InputStr[i] := Char(Ord(TmpChar) + 65248); end; end; Result := InputStr;end;
// 全角转半角的函数function FullToHalf(InputStr: String): String;var TmpChar: Char; i: Integer;begin for i := 1 to Length(InputStr) do begin TmpChar := InputStr[i]; if (Ord(TmpChar) = 12288) then begin InputStr[i] := Char(32); // ' ' Continue; end; if (Ord(TmpChar) = 12290) then begin InputStr[i] := Char(46); // '.' Continue; end; if (Ord(TmpChar) > 65280) and (Ord(TmpChar) < 65375) then // 其它字符 begin InputStr[i] := Char(Ord(TmpChar) - 65248); end; end; Result := InputStr;end;
procedure TForm1.Button1Click(Sender: TObject);begin Memo2.Text := FullToHalf(Memo1.Text);end;
procedure TForm1.Button2Click(Sender: TObject);begin Memo1.Text := HalfToFull(Memo2.Text);end;
end.
相关阅读 >>
Delphi colorbox不需要系统那么多颜色,只想自定义显示其中几个,怎么做?
winapi 字符及字符串函数(7): ischarlower - 是否是个小写字母
Delphi indy 组件包里的 idhttp 组件使用 get 方法下载文件限速的方法
更多相关阅读请进入《Delphi》频道 >>