gpt4 book ai didi

Delphi 7 和 Delphi Tokyo - 不同的结果相同的功能

转载 作者:行者123 更新时间:2023-12-03 15:57:36 29 4
gpt4 key购买 nike

我正在将用 Delphi 7 编写的旧项目转换为最新版本(Delphi Tokyo),在旧代码中,有一个对文本进行加扰和反扰乱的函数,但是当我使用在 Delphi 中编译的相同程序读取加扰文本时东京只是产生垃圾。

这里有人知道为什么相同的代码使用不同版本的 Delphi 编译时会表现出不同的结果吗?

这是函数:

function TForm2.EnDeCrypt(const Value : String) : String;
var
CharIndex : integer;
begin
Result := Value;
for CharIndex := 1 to Length(Value) do
Result[CharIndex] := chr(not(ord(Value[CharIndex])));
end;

最佳答案

从 Delphi 2009 开始,string 类型自动映射到 Unicode 兼容的 UnicodeString 类型。之前,它映射到 AnsiString 类型。

您可以通过显式使用 AnsiStringAnsiChar 来使用您的例程。

function TForm2.EnDeCrypt(const Value : AnsiString) : AnsiString;
var
CharIndex : integer;
begin
Result := Value;
for CharIndex := 1 to Length(Value) do
Result[CharIndex] := AnsiChar(not(ord(Value[CharIndex])));
end;

请注意,如果传递给函数的字符串包含无法映射到本地 ANSI 字符集的 unicode 字符,这可能会在运行时导致意外结果。

关于Delphi 7 和 Delphi Tokyo - 不同的结果相同的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52298076/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com