请问如何检测edit框中输入的是中文还是英文,并根据输入的语言做出相关的提示(100分)

  • 主题发起人 主题发起人 johnnywong
  • 开始时间 开始时间
J

johnnywong

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何检测edit框中输入的是中文还是英文,并根据输入的语言做出相关的提示
 
检测字串是否为汉字
function IsHz(Source: string): Bool;
begin
result := ((Word(Source[1]) shl 8 + Word(Source[2])) >= $B0A1) and ((Word(Source[1]) shl 8 + Word(Source[2])) <= $D7F9)
end;
 
随便写的函数,能够满足你的要求。
function Test(Str: string): Boolean;
var
i: Integer;
begin
Result := False;
for i := 0 to Length(Str) - 1 do
begin
if ord(Str) > $7F then
begin
Result := True;
Break;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if Test(Edit1.Text) = True then
ShowMessage('中文')
else
ShowMessage('English')
end;
 
何必呢?英文是单字节表示,而中文是双字节表示,在DELPHI 当中已经有现成的办法来区分单
字节和双字节的文字。可以去查DELPHI的帮助。这也说明BORLAND公司不是盖的。
 
我试过了,这样可以的!!!!
procedure TForm1.Button1Click(Sender: TObject);
var
intI:integer;
chara:char;
strinfor:string;
isEnglish:boolean;
begin
isenglish:=true;

strinfor:=edit1.text;
for inti:=0 to length(strinfor)-1 do
begin
chara:=strinfor[inti];
if ord(chara)>127 then
begin
isenglish:=false;
break;
end;

end;

if isenglish=true then
showmessage('您录入的是英语!')
ELSE
showmessage('您录入的是中文!')

end;
 
以上各位富翁的办法只是以字节的长度来判断输入的是英文还是中文,但遇到这样的情况('中文s3')照样当中文看待
 
取第一个汉字的第一个字节判断它的内码是否大于128大于则是汉字,小于则是英文!
 
gz:
在加一点:检测edit框中输入的是中文.英文.数字.英数混合.中英混合,中数混合等等,
并根据输入的语言做出相关的提示.
 
那你就做一次循环L:)抄一个YZHSI大侠的
function Test(Str: string): Boolean;
var
i: Integer;
begin
Result := False;
if ord(Str) > $7F then
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i:char;
j:integer;
s:string;
begin
i:='4';//这个为初始阶段
s:=edit1.text;
for j:=1 to length(s) do
begin
if test[j] then
begin
if (i='4')or(i='0')then
begin
i:=0;//这个为中文
inc(j);
end
else
begin
i:='2';//这个为中英文混合
end;
end
else
begin
if (i='4')or(i='1')then
begin
i:=2;//这个为中英文混合
inc(j);
end
else
begin
i:='1';//这个为英文
end;
end;
end;
if i='0' then
showmessage("这个为中文")
else if i='1' then
showmessage("这个为英文")
else
showmessage("这个为中英文混合")

end;
 
判断某个字符是否为汉字
http://www.delphibbs.com/keylife/iblog_show.asp?xid=5653

 
混合?很简单,如果有中文,就是中文或混合,没有中文,就是纯英文!
 
后退
顶部