gpt4 book ai didi

delphi - 将 SysUtils.WrapText() 与包含单引号的字符串一起使用

转载 作者:行者123 更新时间:2023-12-03 15:00:25 30 4
gpt4 key购买 nike

我正在尝试使用 SysUtils.WrapText()使用包含转义单引号字符的字符串运行函数,我得到了意外的结果。

var
Lines : TStrings;
begin
Lines := TStringList.Create;
try
Lines.Text := WrapText('Can''t format message, message file not found', 15);
ShowMessage(Lines.Text);
finally
Lines.Free;
end;
end;

如果字符串包含撇号字符,该函数似乎根本不会换行字符串。

我还尝试使用 #39 代码而不是单引号字符,但问题仍然存在。此外,我检查了 Lines.Count 并且它是 1

image

我尝试删除单引号字符:

var
Lines : TStrings;
begin
Lines := TStringList.Create;
try
Lines.Text := WrapText('Cant format message, message file not found', 15);
ShowMessage(Lines.Text);
finally
Lines.Free;
end;
end;

它开始按预期包装字符串:

image

我想知道为什么会发生这种情况,以及我应该如何使用WrapText()具有这样的字符串的函数?

最佳答案

您所描述的是故意行为

在 Delphi XE 及更早版本中,WrapText() documentation包括以下声明:

WrapText does not insert a break into an embedded quoted string (both single quotation marks and double quotation marks are supported).

在 Delphi XE2 及更高版本中,文档中省略了该语句,但该行为仍然在 RTL 中实现。

我已向 Embarcadero 开具了关于此遗漏的票证:

RSP-24114: Important clause about embedded quoted strings is missing from WrapText documentation

关于delphi - 将 SysUtils.WrapText() 与包含单引号的字符串一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55422887/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com