我正在将一个 delphi 7 应用程序迁移到 delphi XE4。在 Delphi 7 中,一些变量是这样声明的:
var abc : string[80];
在迁移此代码时,我将上面的代码声明更改为
var abc : string;
据我了解,string[80] 是 ansistring,string 是 unicode。那么,这是正确的做法吗?
我正在关注stackoverflow的以下链接:
我正在将一个 delphi 7 应用程序迁移到 delphi XE4。在 Delphi 7 中,一些变量是这样声明的:
var abc : string[80];
在迁移此代码时,我将上面的代码声明更改为
var abc : string;
据我了解,string[80] 是 ansistring,string 是 unicode。那么,这是正确的做法吗?
我正在关注stackoverflow的以下链接:
确实你是对的:
string[#]
是 的亚型ShortString
。string
是一个常规字符串,在 Delphi 2007 之前是单字节(现在称为),在 Delphi 2009之前是AnsiString
多字节(现在称为)。
在 Delphi 2007 之前,编码是未确定的。从 Delphi 2009 开始,两者都可以有编码。UnicodeString
AnsiString
UnicodeString
更多背景信息可以在这两个 Delphi 文档主题中找到:
回答您应该如何更换的问题ShortString
:
这完全取决于您ShortString
在 Delphi 7 中的使用方式。根据使用情况,有多种方法:
string
byte
AnsiString
这一切都取决于您存储的数据类型,因此这是您需要找出的第一件事。