本文整理自网络,侵删。
/// 半角转全角的函数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 runasadmin 运行程序并申请管理员权限
winapi 字符及字符串函数(14): chartooem、oemtochar
Delphi fileopendialog1 多选加载大量文件,不受中文文件名影响
Delphi winapi: getclassname - 获取指定窗口的类名
更多相关阅读请进入《Delphi》频道 >>