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

用户1556433

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

var abc : string[80];

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

var abc : string;

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

我正在跟踪来自stackoverflow的以下链接:

将Char转换为AnsiChar或WideChar(Delphi)

Jeroen Wiert Pluimers

确实,您是对的:

  • string[#]是的子类型ShortString
    它最多可包含255个字符(取决于#),并且编码不确定(取决于您)。
  • string是一个常规字符串,AnsiString在Delphi 2007之前是单字节(现在称为UnicodeString),在Delphi 2009
    之前是多字节(现在称为)。在Delphi 2007之前,编码是不确定的。从Delphi 2009开始,两者AnsiStringUnicodeString都可以具有编码。

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

回答有关如何更换的问题ShortString

这完全取决于您ShortString在Delphi 7中的使用方式。根据用途,有多种选择方法:

  • string
  • 的数组 byte
  • AnsiString

这一切都取决于您存储的数据类型,因此这是您首先需要了解的内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章