jconvert を使い、RichEdit に LF, CR, CRLF の改行コードのファイルを
読み込むことに成功しました。ところが逆に読み込んだファイルの改行
コードをそのままに保存することが出来なくて困っています。
richedit1.saveToFile を使うと、改行コードがCRLFに変換されて保存
されるので、memo を使うことにしましたが、駄目でした。実際にやった
ことを下記に記します。
memo に内容を load して
memo1.Lines.Add(ConvertReturnCode(RichEdit1.Text, LF_R));
ファイルに保存すると
memo1.Lines.SaveToFile(FILENAME);
実際に保存されたファイルは、CRLF でした。
ファイルの読み込み時は、Stream を使い直接ファイルの中身の
改行コードを取得したのですが、逆に保存するときはどのように
すればよろしいでしょうか。
識者の方々、よろしくお願いいたします。
こんな感じでうまくいくようです。
uses
jconvert;
procedure SaveTextWithReturnCode(filename, str: string; Rcode: integer);
var
ms:TMemoryStream;
s:string;
begin
s := ConvertReturnCode(str,Rcode);
ms := TMemoryStream.Create;
try
ms.Write(s[1],Length(s));
ms.SaveToFile(filename);
finally
ms.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SaveTextWithReturnCode('c:\CovertTest.txt',Memo1.Text,LF_R);
end;
> richedit1.saveToFile を使うと、改行コードがCRLFに変換されて保存
TRichEditのLines.SaveToFileの仕様で、保存時に必ず#13#10になります。
SaveToStreamも同様です。
var
S: string;
begin
S := ConvertReturnCode(RichEdit1.Lines.Text, LF_R);
このSをTFileStreamやTMemoryStreamで保存してはどうでしょうか。
ツイート | ![]() |