Home » Tutorials » Sonstiges » rtf2html

rtf2html

Schritt 3

Doch beginnen wir endlich wirklich.
Zuerst werden einige Variablen initialisiert:

 Source.Visible:=false;
 Source.Width:=32000;

 Dest.Lines.Clear;
 ReihenFolge:=TList.Create;

 // der Header
 s:=
 '<html><head><title>'+
 OpenDialog.FileName+
 '</title><meta name="generator" content="Johannes'+
 ' rtf2html-Konverter"></head>'+
 '<body text="#000000" bgcolor="#FFFFFF" link="#FF0000"'+
 'alink="#FF0000" vlink="#FF0000">';

 fett:=false;
 kursiv:=false;
 us:=false;
 bullet:=false;

 // wieviele Zeichen insgesamt
 Source.SelectAll;
 loop2:=Source.SelLength;

 // die Daten des ersten Zeichens herausfinden
 Source.SelLength:=1;
 AktColor:=Source.SelAttributes.Color;
 AktSize:=CalculateSize(Source.SelAttributes.Size);
 Align:=Source.Paragraph.Alignment;

 // erstmal eine völlig willkürliche Reihenfolge festlegen
 ReihenFolge.Add(Pointer(1));
 ReihenFolge.Add(Pointer(2));
 ReihenFolge.Add(Pointer(3));
 ReihenFolge.Add(Pointer(4));
 ReihenFolge.Add(Pointer(5));
 ReihenFolge.Add(Pointer(6));

 AktLine:=0;

Source verstecken wir, damit alles schneller geht. Außerdem vergrößern wir die Komponente, weil wir später immer dort, wo eine neue Zeile beginnt, einen neuen Paragraphen einfügen werden.
Doch kommen wir zum eigentlich spannenden: ReihenFolge. Diese Liste wird aus folgendem Grund benötigt: HTML sieht es ganz gerne, wenn Tags in der richtigen Reihenfolge geschlossen werden. Also Irgendwas und nicht Irgendwas .
Und damit wir immer wissen, welche Tags vor welchen geschlossen werden müssen, haben wir die Liste Reihenfolge. Welche Werte für welche Tags gelten, wurde bei der Variablendefinition erklärt.