Ist ja noch einfacher, JvRichEdit hat nämlich die Eigenschaft "StreamMode".
Delphi-Quellcode:
RichEdit2.LoadFromFile(DieAlteDatei);
RichEdit1.SaveToStream(TemporärerMemoryStream);
RichEdit2.StreamMode := RichEdit2.StreamMode + [smSelection];
RichEdit2.LoadFromStream(TemporärerMemoryStream);
RichEdit2.StreamMode := RichEdit2.StreamMode - [smSelection];
RichEdit2.SaveToFile(DieNeueDatei);
[Nachtrag]
An sich müsste mein alter Vorschlag auch laufen, du musst dann nur den Typen von TCustomRichEdit auf TJvRichEdit ändern.
Oder alternativ so:
Delphi-Quellcode:
// Ersetzt die aktuelle Auswahl durch den Inhalt des Streams
procedure AddRtfFromStream(RichEditHandle: THandle; Stream: TStream);
var EditStream: TEditStream;
begin
EditStream.dwCookie := LongInt(Stream);
EditStream.dwError := 0;
EditStream.pfnCallback := @_AddRtfCallback;
SendMessage(RichEditHandle, EM_STREAMIN, SF_RTF + SFF_SELECTION, LongInt(@EditStream));
if EditStream.dwError <> 0
then
raise Exception.Create('
RichEdit operation fehlgeschlagen!');
end;
und dann aufrufen mit AddRtfFromStream(RichEdit2.Handle, TemporärerMemoryStream);