如何判断TEdit中的字符串中包含汉字

解决方案 »

  1.   

    s:=edit1.Text;
     for i:=0 to length(s) do
        begin
          if (ord(s[i])>127) then
           showmessage('有汉字');
        end;
      

  2.   

    楼上最好在循环中设置一个Counter
    否则如果有一万个汉字的话,那么就得显示一万次message了
    var
    i:Integer ;
    s:String;
    Count:Integer;
    begin
           s:=Edit1.Text;
           for i:=0 to length(s) do
            begin
              if (ord(s[i])>127) then
              Count:=1  ;
            end;
            if Count>0 then
              showmessage('有汉字')
    end;
      

  3.   

    if  Length(WideString(Edit1.Text))<>length(Edit1.Text) then
       ShowMessage('我有汉字了');
      

  4.   

    s:=edit1.Text;
     for i:=0 to length(s) do
        begin
          if (ord(s[i])>127) then
           begin
           showmessage('有汉字');
           break;
           end;
        end;
      

  5.   

    给个比较特殊的方法var s :string;
        ws : widestring;
    begin
      s := edit1.text;
      ws := edit1.text;
      if Length(s)<>Length(ws) then
          showmessage('有汉字');      /// length(s)-length(ws) 的值为汉字或者中文符号的个数
    end;
      

  6.   

    大于127的方法只能判断出mbcs编码中使用了双字节的字符如果不是unicode编码,而是mbcs,一般无法准确的判断当前的编码是gb2312,gbk,big5,抑或是shift-jis的,如果是unicode,就可以根据unicode的编码规律来判断了
      

  7.   

    if Length(s)<>Length(ws) then
          showmessage('有汉字');    
    看不懂啊?什么意思啊?