我无法想象如何使用UNIX行结尾(LF)而不是默认的CRLF来保存TStringList的行。
我尝试在stringList.Text属性上使用StringReplace()而没有任何成功: - (
答案 0 :(得分:13)
StringList.Text是一个每次都生成文本的属性。因此,当您将修改后的文本分配回字符串列表时,您将撤消更改。当您再次获得文本时,stringlist将只使用其默认的换行符构建一个新字符串。
通过设置stringlist的LineBreak
属性可以影响此字符。
LineBreak
的默认值为sLineBreak
常量,可以是Windows上的#13#10
,也可以是Linux上的#10
或Mac上的#13
。
否则,如果将StringList.Text保存在字符串变量中,则可以使用StringReplace
更改该字符串,甚至更好地使用AdjustLineBreaks
。
答案 1 :(得分:0)
另一种可能性是在其字符串列表的版本中使用具有拆分/连接功能的Jedi代码库(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);