3

デフォルトの CRLF の代わりに UNIX 行末 (LF) を使用して TStringList の行を保存する方法がわかりません。

stringList.Text プロパティで StringReplace() を使用しようとしましたが、成功しませんでした:-(

4

2 に答える 2

14

StringList.Text は毎回テキストを生成するプロパティです。したがって、変更したテキストを文字列リストに戻すと、変更が取り消されます。テキストを再度取得すると、stringlist はデフォルトの改行文字を使用して新しい文字列を作成します。

LineBreakこの文字は、stringlistのプロパティを設定することによって影響を受ける可能性があります。のデフォルト値LineBreaksLineBreak定数で、#13#10Windows #10、Linux、または#13Mac のいずれかになります。

それ以外の場合は、StringList.Text を文字列変数に保存すると、 を使用StringReplaceしてその文字列を変更できますAdjustLineBreaks

于 2013-06-26T12:25:19.653 に答える
0

もう 1 つの可能性は、Jedi Code Library ( 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 に答える