该字符串的一般格式是:
X12XX4X  X表示中文
比如 啊12的3如4
     如34如34共4
上面去掉中文是:
     1234
     34344
有没有去掉汉字的函数??或者怎么实现??

解决方案 »

  1.   

    var 
      i: integer;
      s, s1: string;
    begin
      s := '啊12的3如4';
      s1 := '';
      for i := 1 to Length(s) do
        if Ord(s[i]) < 128 then
          s1 := s1 + s[i];
      ShowMessage(s1);
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      str:widestring;
      i:integer;
    begin
      str:='sddgf好呀sdf';
      for i:=1 to length(str) do
      begin
        if ord(str[i])<127 then
          edit1.text:=Edit1.text+str[i];
      end;
    end;
      

  3.   

    : sysu(死树) 我们还帧的心有灵犀阿,呵呵
      

  4.   

    中文 的 ASCII码大于128的,你只要循环判断一下,把大于128的去掉即或
      

  5.   

    Str:='啊12的3如4';
    Result:='';
    i:=1;
    while i<=Length(Str) do
    begin
      if Ord(Str[i])<128 then
        Result:=Result+Str[i];
      Inc(i); 
    end;
      

  6.   

    来晚了
    我再送一个函数:;function GetNumFromStr(const str: String;const hex:boolean=false): String;
    var
     i:integer;
     charset:Set of char;
    begin
    if hex then
     charset:=['0'..'9','a'..'f','A'..'F','.']
    else
     charset:=['0'..'9','.'];
    for i := 1 to Length(str) do
      begin
        if (str[i] in charset) then
          result:= result + uppercase(str[i]);
      end;
    end;可以取得十六进制的数字!可以包含小数点,但你必须保证只有一个小数点!
      

  7.   

    中文 的 ASCII码大于128的,占两个CHAR