如何区别一个string或strings里的汉字和英文字母?(50分)

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

jklmsoho

Unregistered / Unconfirmed
GUEST, unregistred user!
[blue]如何区别一个string或strings里的汉字和英文字母?[/blue]
 
var ws : widestring;i:integer;
begin
ws := '你的字符串123abc汉字';
for i := 1 to length(ws) do
if ord(s) > 255 then
//汉字
else
//字符
 
告诉你一个非常有用的函数。
bytetype 它可以判断一个字符串中,某个 Char 是单个字母,还是双字节的前一位或
后一位。
mbSingleByte 单字母
mbLeadByte 双字节第一位
mbTrailByte 双字节第二位
 
var s:widestring;
I,e,c:integer;
begin
s:=memo1.text;
e:=0;c:=0;
for I:=1 to length(s) do
begin
if (ord(s)>=33)and(ord(s)<=126) then
begin
inc(e);
label1.caption:='英文字数:'+inttostr(e);
end
else
if (ord(s)>=127) then
begin
inc(c);
label2.caption:='中文字数:'+inttostr(c div 2);
end;
end;
 
后退
顶部