我是个初学者,刚看了几天的书,手就有点痒痒,想做一个简单的不能在简单的例子:
   我只想实现在RichEdit中一边输入文字,在下面的StatusBar中显示输入的总字数,我现在已做到了可以获取字数,但现在的问题是除中文外的其它字符都算做1个字,而中文字的一个字就算做了2个字,这样统计字数就不正确了,该怎么处理中文字呀,中文字和其它混合在一起正确统计字数

解决方案 »

  1.   

    转的:计算中文字数
    var ans : AnsiString;
        wis : WideString;
        sub : Integer; //汉字的个数
    Begin
      ans := '盗版delphi';
      wis := WideString( ans );
      sub := Length( ans ) - Length( wis );
    End;
      

  2.   

    procedure TForm1.Button2Click(Sender: TObject);
    var ws:widestring;
    begin
        ws:='test试试';
        ShowMessage(IntToStr(length(ws)));//length(ws)=6
    end;
      

  3.   

    参照 这个:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      c1,c2: Char;
    begin
      c1 := edit1.Text[1];
      c2 := edit1.Text[2];
      { GBK字符集的一个汉字内码这样的规则:
       包含两个字节,
       前一字节的取值范围在$81~$FE之间,
       后一字节不等于$7F
       因为GBK包含GB2312,所以此规则也适应于GB2312
      }
      if (ord(c1)>=$81) and (ord(c1)<$FE) then  begin
        if ord(c2)<>$7F then
          showmessage('是汉字')
        else
          showmessage('不是汉字');
      end
      else
        showmessage('否');
    end;