如何判断edit 中汉字的个数

lyq111 2004-04-25 02:56:06
如何判断edit 中汉字的个数能给段代码最好谢谢!!
...全文
34 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
太空11 2004-04-26
  • 打赏
  • 举报
回复
同意这个观点: hewei2003()
mzdot 2004-04-25
  • 打赏
  • 举报
回复
var s:String;
ws:WideString;
begin
ws:=s;
Len:=Length(ws);
end;
truemoller 2004-04-25
  • 打赏
  • 举报
回复
不错!!
jie115 2004-04-25
  • 打赏
  • 举报
回复
学了一招
hewei2003 2004-04-25
  • 打赏
  • 举报
回复
哦,我发现你不会用函数,呵呵,那就告诉你一个更简单的方法吧

interface

uses
加入StrUtils单元

procedure TForm1.Edit1Change(Sender: TObject);
var
i,Count: Integer;
begin
for i := 1 to Length(Edit1.Text) do
begin
if ByteType(Edit1.Text,i) <> mbSingleByte then
Count := Count + 1;
end;
showMessage('中文字有: '+IntToStr(Count div 2)+' 个');
end;

Email:cqhw2003@126.com
lyq111 2004-04-25
  • 打赏
  • 举报
回复
怎么样去定义这函数
10975037 2004-04-25
  • 打赏
  • 举报
回复
把1楼的代码放到一个函数里..然后在Edit的OnChange事件里调用函数就可以了.
xudaifei 2004-04-25
  • 打赏
  • 举报
回复
那就在EDIT控件的ONChange()是上面的代码.
lyq111 2004-04-25
  • 打赏
  • 举报
回复
我想动态输入的时候统计
welllove88 2004-04-25
  • 打赏
  • 举报
回复
上面的代码不错
10975037 2004-04-25
  • 打赏
  • 举报
回复
var s:string;
i,e,c:integer;
begin
s:=Edit1.text;
e:=0;c:=0;
for i:=1 to length(s) do
begin
if (ord(s[i])>=33)and(ord(s[i])<=126) then
begin
inc(e);
label1.caption:='英文字数:'+inttostr(e);
end
else
if (ord(s[i])>=127) then
begin
inc(c);
label2.caption:='中文字数:'+inttostr(c div 2);
end;
end;
end;

5,390

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧