本文整理自网络,侵删。
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); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
// 半角转全角的函数 20200110 更新修正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) = 13) and (Ord(InputStr[i + 1]) = 10) or (Ord(TmpChar) = 10) and (Ord(InputStr[i - 1]) = 13) then begin Continue; end;
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) = 13) and (Ord(InputStr[i + 1]) = 10) or (Ord(TmpChar) = 10) and (Ord(InputStr[i - 1]) = 13) then begin Continue; end; 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;
procedure TForm1.FormCreate(Sender: TObject);begin
end;
end.
相关阅读 >>
Delphi 选择目录对话框(selectdirectory 函数)
Delphi tserversocket 发送消息之前检查客户端是否仍处于连接状态
Delphi xe android的所有权限按照分类总结说明
更多相关阅读请进入《Delphi》频道 >>