vb中有asc函数是得到字符或汉字Ascii的,在delphi中却找不到有转换汉字ascii码的
函数,自己搞了一个,不到之处请大家多指教。function GetAsc(Str:string):String;
 var
  p:PByte;
  Asc:string;
  S:String;
  SS:String;
begin
  p:= pointer(Str);
  Asc:=InttoHex(byte(p^),2);
  SS:= '$'+Asc;
  if Strtoint(SS)<=127 then
   Result:= Asc
  else
  begin
    S:= Asc ;
    inc(p);
    Asc:= inttoHex(Byte(p^),2);
    S:= S+Asc;
    Result:= s;
  end;
end;

解决方案 »

  1.   

    ord 好像不能得到汉字的Ascii吧
      

  2.   

    不用这么麻烦,StrToInt, IntToStr的互相转化,使用Ord (推荐)或者直接让一个让两个Byte类型的地址指向它(不推荐)
      

  3.   

    wengj兄所言极是,不过ord怎么得到汉字的ascii码呢,
      

  4.   

    以下是我从网上学习到的:(希望有用)
    { 如表示汉字“国”的是ASCII(b9)和ASCII(fa),这里是十六进制;    }
    以下为程序:
    const
      BufSize = 2000;                               { 串的最大容量 }type
      TBuffer     = array [1..BufSize] of Char;     { 串缓存       }
      TFileOfChar = file of Char;                   { 字符类型文件 }
                                                    { 汉字字符类型 }  TChnChar = string[2];var
      Form1: TForm1;
    implementation{$R *.dfm}
    function ChnCharToRTFCode(Ch: TChnChar): string;
    var
      C1, C2: Char;
      O1, O2: Byte;
      S: string;
    begin
      C1 := Ch[1];
      C2 := Ch[2];
      O1 := Ord(C1);
      O2 := Ord(C2);
      S := Format('%2X', [O1]) + Format('%2X', [O2]);
      Result := Lowercase(S);
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      edit1.Text:= ChnCharToRTFCode('国');
    end;
    运行结果:b9fa
      

  5.   

    var
    s1:string;
    s2:string;
    begin
    s1:='国';
    s2:=inttohex(ord(s1[1]),2)+inttohex(ord(s1[2]),2);
    showmessage(s2)end;