我用读卡器可以读出卡中的ascii或者16进制数据,可是不知道如何转成汉字,有那位朋友可以帮忙,急用!

解决方案 »

  1.   

    function HexToStr(mHex: string): string;
    var
      I: Integer;
    begin
      Result := '';
      for I := 1 to Length(mHex) div 2 do
        Result := Result + Chr(StrToIntDef('$' + Copy(mHex, I * 2 - 1, 2), 0));
    end; { HexToStr }
      

  2.   

    for i=1 to *
     s[i]=chr(??ascii码)Delphi把汉字当两个ASCII字符处里
      

  3.   

    如果读出的是ascii码,直接相加就可以,如:
    s:=EmptyStr;
    for l_intCyc:= 52 to 63 do
    s:=s+l_Data[l_intCyc];
    ug_recCarInfo.strCarTypeName := Trim(s);如果读出的是16进制的数则需要转换一下,如:
    s:=EmptyStr;
    for l_intCyc := 67 to 69 do
    s:=s+string(inttohex(ord(l_Data[l_intCyc]),2));
    s:='$'+s;
    g_rJourney:=strtoint(s)/10;
    g_rJourney:= RoundTo(g_rJourney,-1);『这里l_Data是一个数组,存放着读出的数据』
      

  4.   

    a:='我';
    s:=EmptyStr;
    for i:=0 to 1 do
    s:=s+inttostr(ord(a[i]));
    showmessage(s);
    得到s=0206
    可是showmessage(char(0206));
    得到是'['
    怎么得到'我'
      

  5.   

    showmessage(chr(206)+chr(210));
    这样就可以了,多谢各位!