我正在将delphi 7应用程序迁移到delphi XE4。在Delphi 7中,一些变量声明如下:
var abc : string[80];
迁移此代码时,我将上面的代码声明更改为
var abc : string;
根据我的理解,string [80]是ansistring,string是unicode。那么,这是正确的方法吗?
我正在关注stackoverflow中的以下链接:
答案 0 :(得分:4)
确实你是对的:
string[#]
是ShortString
的子类型
它最多包含255个字符(取决于#),并且编码未确定(即由您决定)。string
是一个常规字符串,直到Delphi 2007为单字节(现在称为AnsiString
),自Delphi 2009起为多字节(现称为UnicodeString
)。 AnsiString
和UnicodeString
都可以进行编码。在这两个Delphi文档主题中可以找到更多背景信息:
回答有关如何替换ShortString
:
这完全取决于您如何在Delphi 7中使用ShortString
。根据使用情况,有多种方法可供选择:
string
byte
AnsiString
这一切都取决于您存储的数据类型,因此这是您需要找到的第一件事。