Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi RichEdit: Formatierung finden (https://www.delphipraxis.net/79094-richedit-formatierung-finden.html)

tr909 16. Okt 2006 10:52


RichEdit: Formatierung finden
 
So, ich brauche einen simplen Rtf->Html Export (brauch´s eigentlich nur für bold und kursiv). Nun habe ich folgendes zusammengebastelt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
  leng : integer;
  boldin : boolean;
  boldout : boolean;
begin
  RichEdit1.SelectAll;
  leng := RichEdit1.SelLength;
  boldin := false;
  boldout := false;
  for i := 1 to leng do
  begin
    RichEdit1.SelStart := i;
    RichEdit1.SelLength := 1;
    boldout := true;
    if fsbold in RichEdit1.SelAttributes.Style then
      begin
        boldout := false;
        if not boldin then
          RichEdit1.SelText := '[b]'+RichEdit1.SelText;
        boldin := true;
      end;
    if boldin then
      if boldout then
      begin
        RichEdit1.SelText := RichEdit1.SelText+'[/b]';
        boldin := false;
      end;
  end;
end;
Meine Frage ist nun, ob es noch eleganter geht, bzw ob es eine Suchfunktion für Formatierungen in RTF gibt?

Gruß
tr909

Jürgen Thomas 16. Okt 2006 11:23

Re: RichEdit: Formatierung finden
 
Hallo,

schau Dir doch einmal eine (möglichst kleine) RTF-Datei in Notepad o.ä. an. Dann wirst Du erkennen:
  • Alle zusammengehörenden Abschnitte beginnen mit '{' und enden mit '}'.
  • bold wird in einem solchen Abschnitt eingeleitet von '\b' und endet mit dem Abschnitt.
  • italic beginnt analog mit '\i' und endet mit dem Abschnitt.
Theoretisch kannst Du das ebenso analysieren (und alle anderen Codierungen rausschmeißen).

Ich vermute, Deine Funktion geht einfacher und läuft schneller; also bau' das weiter aus.

Gruß Jürgen


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 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-2025 by Thomas Breitkreuz