Delphi XE3:Chr Ansi版本?

时间:2013-06-05 20:21:57

标签: delphi unicode ansi delphi-xe3 chr

我有自己的带加密功能的D6 pas库。 今天我尝试在XE3下使用它,并且由于unicode我在其中发现了许多错误。 我试图移植到AnsiString,但是我在chr(nnn)上失败了,这在Delphi6下是8位限制。

我正试图解释这个问题:

    Str := chr(hchar);
    AStr := Str;

Str - string; AStr - ansistring。

当hchar为216(diamater)时,AStr变为“O”,什么是Ascii 79 ... 而且此刻我失去了原来的价值。

Ansi Chr有什么功能吗?例如:“AChr(xxxx)”

或者我需要更改我的代码以不在内部部分使用字符串,只有字节,然后将这些字节转换为AnsiString?

感谢您的任何建议,帮助,信息!

DD

1 个答案:

答案 0 :(得分:5)

您可以撰写AnsiChar(SomeOrdinalValue)来制作具有特定序数的AnsiChar。所以你的代码应该是:

AStr := AnsiChar(hchar);

问题中的代码问题是您转换为UTF-16并返回。

在我看来,字符串是加密代码的错误类型。使用字节数组TBytes