我在编写Delphi程序中用到了字符串的函数,其中字符串中有数字、英文字母、中英文标点和汉字等内容,我想一个数字算一个,一个汉字算一个,请问各位高人,我如何求字符串的长度啊,有没有专门的函数啊?如'I 服了 you!'的长度返回值是9(包括空格) 

解决方案 »

  1.   


    procedure TForm3.Edit1Change(Sender: TObject);
    var
      s:string;
      num:integer;
    begin
    s:=Edit1.Text;
    num:=0;
    while length(s)>0 do
    begin
     if Ord(s[1])<128 then
       s:=copy(s,2,length(s))
     else
       s:=copy(s,3,length(s));
     inc(num);
    end;
    Edit2.Text:=IntToStr(num);
    end;
      

  2.   

    var
      ws : WideChar;
    begin
      ws:='I 服了 you!';
      ShowMessage(IntToStr(Length(ws)));  //9
    end;
      

  3.   


    var 
      ws : WideString
    begin 
      ws:='I 服了 you!'; 
      ShowMessage(IntToStr(Length(ws)));  //9 
    end;
      

  4.   

    晕了,弄个样式没弄好,不是WideChar,是
    WideString