Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi RichText zu Plain-Text umwandeln (https://www.delphipraxis.net/37676-richtext-zu-plain-text-umwandeln.html)

phXql 8. Jan 2005 17:14


RichText zu Plain-Text umwandeln
 
Moin liebe Delphianer,

gibt es eine Möglichkeit, RichText in normalen Plain-Text zu wandeln? Dass dabei die Formatierung verloren geht, ist mir bewusst und so gewollt. Über die Suche habe ich noch nichts gefunden.

Ultimator 8. Jan 2005 17:16

Re: RichText zu Plain-Text umwandeln
 
Ja, die gibt es ;-)

Wenn du ein Richedit hast, und es nur als Plaintext abspeichern möchtest, dann setz PlainText auf true ;-)

Anderenfalls speicher doch einfach einen Text mit Formatierungen als RTF ab und öffne die Datei mit Notepad.
Dann siehst du die Richtext-Tags und du kannst mit delete() oder auch StringReplace() arbeiten :-)

Dax 8. Jan 2005 17:17

Re: RichText zu Plain-Text umwandeln
 
Den RichText in ein RichEdit laden, bei de PlainText auf False steht; PlainText auf True stellen, den Text wieder speichern: Fertig ;-)
Delphi-Quellcode:
var R: TRichEdit;
begin
  R := TRichEdit.Create(nil);
  R.PlainText := False;
  R.LoadFromStream(Da sollte ein Memory/StringStream hin);
  R.PlainText := True;
  R.SaveToStream(Selber Stream wie oben);
end;

Luckie 8. Jan 2005 17:17

Re: RichText zu Plain-Text umwandeln
 
Entweder zu Fuß die Tags entfermnen oder in eine TRichEdit laden und als PalinText wieder speichern. Ersteres wäre die elegantere aber aufwendigere Methode zweiteres die schnellere und sicherere. ;)

phXql 8. Jan 2005 17:19

Re: RichText zu Plain-Text umwandeln
 
das problem ist: ich bekomme vom ICQ-Server eine Nachricht im RichText-Format. Nun möchte ich mit Delphi irgendwie alle RichText-Tags killen, so dass nur noch der normale Text übrigbleibt. Und den Text in ein Richedit einzufügen, PlainText auf True zu setzen, zu Speichern und dann wieder zu laden erscheint mir ein bisschen umständlich. Und alle RTF-Tags mit StringReplace zu vernichten, is auch nich grad das ware, bzw. eine Höllenarbeit. Hat da nich grad zufällig einer nen fertigen Algo zur Hand? :)

phXql 8. Jan 2005 17:39

Re: RichText zu Plain-Text umwandeln
 
okay, habs jetz mal so gemacht, bis ich evtl was besseres finde. is die methode mit laden und dann wieder speichern:

Delphi-Quellcode:
var t_richedit: TRichEdit;
    t_stream: TStringStream;
begin
    t_richedit := TRichEdit.Create(FormMain);
    t_stream := TStringStream.Create('');
    try
      t_richedit.ParentWindow := FormMain.Handle;
      t_richedit.PlainText := False;
      t_richedit.Text := pRTFString;
      t_richedit.PlainText := True;
      t_richedit.Lines.SaveToStream(t_stream);
      Result := t_stream.DataString;
    finally
      FreeAndNil(t_richedit);
      FreeAndNil(t_stream);
    end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz