Delphiで、CR・LF・CRLFの改行コードが混在している文字列の改行コードをいずれかの改行コードに統一する方法です。
System.SysUtilsユニットのAdjustLineBreaks関数を使うと、文字列の改行コードを統一できます。
// CRLFにする
S := System.SysUtils.AdjustLineBreaks(S, tlbsCRLF);
// LFにする
S := System.SysUtils.AdjustLineBreaks(S, tlbsLF);
// OSのデフォルトの改行コードにする(WindowsならCRLF、MacならLF)
S := System.SysUtils.AdjustLineBreaks(S, DefaultTextLineBreakStyle);
次のサンプルコードでは、選択したファイルの改行コードをOSのデフォルトの改行コードに変換します。
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
begin
if OpenDialog1.Execute then
begin
// ファイルを読み込む
S := TFile.ReadAllText(OpenDialog1.FileName);
// OSのデフォルトの改行コードにする(WindowsならCRLF、MacならLF)
S := System.SysUtils.AdjustLineBreaks(S, DefaultTextLineBreakStyle);
// ファイルを保存する
TFile.WriteAllText(OpenDialog1.FileName, S);
end;
end;