![]() |
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. |
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 :-) |
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; |
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. ;)
|
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? :)
|
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 21:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz