Delphi 7和Delphi XE4中字符串[80]和字符串之间的区别

时间:2013-09-10 05:54:04

标签: delphi delphi-7 delphi-xe4

我正在将delphi 7应用程序迁移到delphi XE4。在Delphi 7中,一些变量声明如下:

var abc : string[80];

迁移此代码时,我将上面的代码声明更改为

var abc : string;

根据我的理解,string [80]是ansistring,string是unicode。那么,这是正确的方法吗?

我正在关注stackoverflow中的以下链接:

Convert Char into AnsiChar or WideChar (Delphi)

1 个答案:

答案 0 :(得分:4)

确实你是对的:

  • string[#]ShortString的子类型 它最多包含255个字符(取决于#),并且编码未确定(即由您决定)。
  • string是一个常规字符串,直到Delphi 2007为单字节(现在称为AnsiString),自Delphi 2009起为多字节(现称为UnicodeString)。
    在Delphi 2007之前,编码尚未确定。从Delphi 2009开始,AnsiStringUnicodeString都可以进行编码。

在这两个Delphi文档主题中可以找到更多背景信息:

回答有关如何替换ShortString

的问题

这完全取决于您如何在Delphi 7中使用ShortString。根据使用情况,有多种方法可供选择:

  • string
  • byte
  • 的数组
  • AnsiString

这一切都取决于您存储的数据类型,因此这是您需要找到的第一件事。