我需要创建一个逗号分隔的字符串,该字符串具有多个字符串值,并且每个值都应该是单引号。
当我使用QuotedStr时,它引用双引号而不是单引号。
我甚至尝试使用单引号,但它仍然存在同样的问题。
我尝试使用谷歌搜索,但没有得到任何结果信息。
还有其他方法吗?
问候。
维沙尔
答案 0 :(得分:2)
QuotedStr在字符串的开头和结尾添加单个引号,作为参数传递。 可能有误导的是调试器如何显示字符串。
例如,以下代码
procedure TForm1.Button2Click(Sender: TObject);
var
a, b, c, r: string;
begin
a := 'A';
b := 'B';
c := 'C';
r := QuotedStr(a) + ',' +
QuotedStr(b) + ',' +
QuotedStr(c);
Label2.Caption := r; // breakpoint here
end;
在最后一行有一个断点,在Local Variables
窗格中显示了这一点:
但实际的标签标题如下所示:
调试器用单引号括起字符串以供显示,并且因为你的字符串已经包含单引号,所以看起来会有双引号。
您在评论中发布的代码......
procedure TForm9.Button2Click(Sender: TObject);
var MyString : String;
begin
//#44
MyString := QuotedStr('String1');
MyString := MyString + ',' + QuotedStr('String2');
ShowMessage(MyString);
end;
...产生这个结果:
如果消息展开并显示长度,请执行以下操作:
ShowMessage(MyString + ' Length: ' + IntToStr(Length(MyString)));
......它产生了这个:
单引号,长度与预期一致。