Mam's WebSite

Mamの覚書Q&A検索


大項目:「 Delphi 」 - 中項目:「 コンポーネント 」

「 TStringListで改行コードを13(CR)+10(LF)ではなく、10(LF)でファイルに出力する 」

TStringListで改行コードを13(CR)+10(LF)ではなく、10(LF)でファイルに出力するには。
また、文字エンコードをUTF8でファイルに出力したい。


回答

TStringListのLineBreakプロパティにLFを設定して、SaveToFileで保存するだけです。
また、SaveToFileの第2引数にTEncoding.UTF8を指定することで、文字エンコードUTF8で保存できます。
更に、WriteBOMプロパティをFalseに設定するとBOM無しで保存できます。

ソース

procedure TForm1.Button1Click(Sender: TObject);
var stl:TStringList;
begin
  stl:=TStringList.Create;
  try
    stl.LineBreak := #10;
    stl.Add('改行コードを10(LF)で出力するサンプル');
    stl.Add('文字コードをUTF-8にするにはSaveToFileの第2引数にTEncoding.UTF8を指定します');
    stl.Add('BOM無しにするにはWriteBOMプロパティをFalseに設定します。');
    stl.WriteBOM := False;
    stl.SaveToFile('abc.txt', TEncoding.UTF8);
  finally
    stl.Free;
  end;
end;

Copyright 2019 Mam