テキストを保存すると強制的に改行コードが0D0A(#13#10)となる
テキストファイルの改行コードを0A(#10)で保存したい場合にTStringListで保存すると改行コードが0D0A(#13#10)になってしまいます。今回はその回避方法をご紹介します。なお、動作確認はDelphi5となっております。
文字列をファイルへ保存する
procedure TForm1.Button1Click(Sender: TObject); var str :string; StringList :TStringList; begin str := 'abcde' + #10 + '12345'; // 改行コードは#10とする StringList := TStringList.Create; try StringList.Text := str; StringList.SaveToFile('C:\TStringList.dat'); finally StringList.Free; end; end;
結果をバイナリエディタで確認すると改行コードがCRLF(0D0A)となります。
回避方法
TMemoryStreamを使用すると改行コードがLF(#10)で保存できます。
procedure TForm1.Button2Click(Sender: TObject); var str :string; MemoryStream :TMemoryStream; begin str := 'abcde' + #10 + '12345'; // 改行コードは#10とする MemoryStream := TMemoryStream.Create; try MemoryStream.WriteBuffer(pchar(str)^,Length(str)); MemoryStream.SaveToFile('C:\TMemoryStream.dat'); finally MemoryStream.Free; end; end;
結果をバイナリエディタで確認すると改行コードがLF(0A)となります。
この記事はこれにて完了です。
スポンサーリンク
関連記事
公開日:2015年03月19日
記事NO:00558