3

我不知道如何使用 UNIX 行尾 (LF) 而不是默认的 CRLF 来保存 TStringList 的行。

我尝试在 stringList.Text 属性上使用 StringReplace() 但没有成功:-(

4

2 回答 2

14

StringList.Text 是每次生成文本的属性。因此,当您将修改后的文本分配回字符串列表时,您将撤消所做的更改。当您再次获取文本时,字符串列表将使用其默认换行符构建一个新字符串。

这个字符可以通过设置字符串列表的LineBreak属性来影响。的默认值LineBreaksLineBreak常量,它可以#13#10在 Windows #10、Linux 或#13Mac 上。

否则,如果将 StringList.Text 保存在字符串变量中,则可以使用StringReplace来更改该字符串,或者更好的是,使用AdjustLineBreaks.

于 2013-06-26T12:25:19.653 回答
0

另一种可能性是在其字符串列表版本中使用具有拆分/连接功能的绝地代码库 ( http://jcl.sf.net )。

var so : TJclStringList; // PODO style, requires finally-free-end
    si : iJclStringList; // ref-counted interface for method chaining (aka Fluent API style)
    s  : String;
...
    s := so.Join(^J);
    s := si.Join(^J);
于 2013-06-26T19:48:22.837 回答