ord(str)>128 是中文
ord(str)<=128是英文

解决方案 »

  1.   

    一个函数,转化字符为asc码,asc转化回字符用函数chr()
      

  2.   

    ord(ch)>128 是中文
    (ord(ch)>=asc('a') and ord(ch)<=asc('z'))
    or(ord(ch)>=asc('A') and ord(ch)<=asc('Z'))是英文字符
    其它为其他字符
      

  3.   

    下面的函数用来复制字符串的,能够区分大部分中英文全角半角字符,供参考
    function CtoC(s:string):string;
    var
      i:integer;
      ss:string;
    begin
    i:=1;
    ss:='';
    while i<=length(s) do
    if ord(s[i])>160 then //中文字符
    begin
      ss:=ss+s[i]+s[i+1];
      i:=i+2;
    end
    else  //英文字符
    begin
      ss:=ss+s[i];
      i:=i+1;
    end;
    result:=ss;
    end;
      

  4.   

    试试这个函数吧,应该可以解决你的问题
    bytetype检查是否是单字节或双字节的前一半或后一半