我试图从 Delphi 7和这些pWide移动...
下面的代码只加载'123'
字符串。pFrom
是一个PWideChar
,那么我如何加载带有#0
分隔符的文件名?并追加#0#0
以完成需求?
procedure TForm13.Button1Click(Sender: TObject);
var
s: String;
sfo: TSHFileOpStruct;
begin
s:='123'+#0+'456'+#0;
sfo.pfrom:=pchar(s);
end;
我已经尝试了各种选项,使用如上所述的pWideString
或pChar
,但都无济于事。尝试将pFrom
与#0
连接也失败,并出现错误:
运算符不适用于此操作数类型
请帮助新手。
1条答案
按热度按时间6fe3ivhb1#
在构建字符串文字时,只需删除
+
,例如:这在 Delphi 的文档中有描述:
基本语法元素( Delphi ):字符串
控制字符串是一个或多个控制字符的序列,每个控制字符由
#
符号和一个无符号整数常量组成,该常量在0到65,535(十进制)之间或在UTF-16编码中从$0到$FFFF(十六进制)之间,并表示与指定代码值对应的字符。每个整数在内部由字符串中的2个字节表示。这对于表示控制字符和多字节字符很有用。控制字符串:#89#111#117
等效于带引号的字符串:
'You'
**您可以将带引号的字符串与控制字符串组合在一起,形成更大的字符串。**例如,您可以用途:
'Line 1'#13#10'Line 2'
在“行1”和“行2”之间放置回车换行。但是,不能用这种方式连接两个带引号的字符串,因为一对连续撇号被解释为单个字符。(要连接带引号的字符串,请使用
+
运算符或将它们合并为一个带引号的字符串。)这在 Delphi 7中也可以使用。
另一方面,如果你想更动态地执行它(比如,文件名来自变量),那么你可以这样做:
或者: