gpt4 book ai didi

delphi - 有什么方法可以让 TStringList.CommaText 不使用引号转义逗号吗?

转载 作者:行者123 更新时间:2023-12-02 11:38:49 27 4
gpt4 key购买 nike

我正在做一些代码生成工作,我需要做的事情之一是创建一个函数调用,其中参数之一是函数调用,如下所示:

result := Func1(x, y, Func2(a, b, c));

TStringList.CommaText 对于生成参数列表非常有用,但是当我遍历树来构建外部函数调用时,我最终得到的结果如下所示:

result := Func1(x, y, "Func2(a, b, c)");

它引用第三个参数,因为它包含逗号,并且产生了无效代码。但我不能做像 StringReplace 所有双引号为空字符串这样简单的事情,因为函数参数很可能是内部带有双引号的字符串。有什么办法让它不转义包含逗号的行吗?

最佳答案

您可以设置QuoteChar是一个空格,你只会在输出中得到一些额外的空格,这通常是可以的,因为生成的代码通常不会看起来很漂亮。不过,字符串文字会受到影响;它们会插入额外的空格,从而更改字符串的值。

Free Pascal's TStrings class使用 StrictDelimiter 控制读取 DelimitedText 时是否发生引用属性(property)。当它为true时,根本不会发生引用。也许 Delphi 也以同样的方式对待该属性。

关于delphi - 有什么方法可以让 TStringList.CommaText 不使用引号转义逗号吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3017077/

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