Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 将字符串内容复制到字符数组_Delphi_Delphi 2006 - Fatal编程技术网

Delphi 将字符串内容复制到字符数组

Delphi 将字符串内容复制到字符数组,delphi,delphi-2006,Delphi,Delphi 2006,我想将字符串中的内容复制到char数组 我可以使用这个代码StrLCopy(C,pChar(@S[1]),high(C)) 我目前正在使用Delphi2006。如果因为新版本中提供的Unicode支持而升级我的Delphi版本,会有任何问题吗 如果没有,此转换的代码是什么?在快速测试中,此功能有效: var ch: array[0..10] of Char; c: Char; x: Integer; st: string; begin s := 'Testing'; St

我想将字符串中的内容复制到char数组

我可以使用这个代码
StrLCopy(C,pChar(@S[1]),high(C))

我目前正在使用Delphi2006。如果因为新版本中提供的Unicode支持而升级我的Delphi版本,会有任何问题吗


如果没有,此转换的代码是什么?

在快速测试中,此功能有效:

var
  ch: array[0..10] of Char;
  c: Char;
  x: Integer;
  st: string;
begin
  s := 'Testing';
  StrLCopy(PChar(@ch[0]), PChar(s), High(ch));
  x := 100;
  for c in ch do
  begin
    Canvas.TextOut(x, 100, c);
    Inc(c, Canvas.TextWidth(c) + 3);
  end;
end;

将字符串复制到数组中时,首选

这将适用于所有版本的Delphi,即使Unicode生效。
C
S
的字符类型应相同;不要试图使用该函数在Ansi和Unicode字符之间进行转换

但是
StrLCopy
也可以。不过,您不需要有这么多指针代码。Delphi已经知道如何将字符串转换为PChar:

StrLCopy(C, PChar(S), High(C));

请告诉我这两种STrlCopy语句之间的区别。感谢您抽出时间。帮助中说:“警告:STrlCopy的ANSI版本已被弃用。请使用AnsiStrings单元。”这个答案是十多年前写的,当时该过程没有被弃用。如果您正在减少,那么将AnsiStrings单元添加到您的实现
uses
子句中以停止它。出于好奇,你为什么选择评论我的答案而不是另一个,或者问题本身?谢谢你罗布花时间
StrLCopy(C, PChar(S), High(C));