小编Ngu*_*Loi的帖子

无法在Delphi 10.2中将char数组赋值给字符串

我有以下变量声明:

arrChar_1: array[0..2] of Char;
arrChar_2: array[0..2] of Char;
str: string;
Run Code Online (Sandbox Code Playgroud)

然后我做了作业:

str := arrChar_1 + arrChar_2;
Run Code Online (Sandbox Code Playgroud)

这个赋值在Delphi 6上正常工作.但是当我在Delphi 10.2上编译它时会发生错误:

[dcc32 Error] MigrateConcatenateCharArray.dpr(26): E2008 Incompatible types
Run Code Online (Sandbox Code Playgroud)

我正在通过以下方式解决这个问题:

str := Copy(first_arrChar, 0, StrLen(first_arrChar));
str := str + Copy(second_arrChar, 0, StrLen(second_arrChar));
Run Code Online (Sandbox Code Playgroud)

这个问题有没有其他好的解决方案?(1)


在Delphi 6中:

String = AnsiString
Char = AnsiChar
Run Code Online (Sandbox Code Playgroud)

在Delphi 10.2中:

String = UnicodeString
Char = WideChar
Run Code Online (Sandbox Code Playgroud)

可以告诉我是什么原因造成了不兼容问题?(2)

我理解widechar是一个多字节字符类型.Unicode是字符编码的方式.但我对他们感到困惑.

delphi delphi-6 delphi-10.2-tokyo

5
推荐指数
1
解决办法
433
查看次数

标签 统计

delphi ×1

delphi-10.2-tokyo ×1

delphi-6 ×1