Home » Tutorials » Sonstiges » rtf2html
rtf2html
Schritt 8
Jetzt sind wir auch schon fast am Ende angelangt und schließen daher zuerst nochmals alle Tags bzw. Paragraphen:
// Zum Abschluss schließen wir die ganzen Tags nochmal for loop2:=0 to ReihenFolge.Count-1 do case Integer(Reihenfolge[loop2]) of 1: if fett then s:=s+'</strong>'; 2: if kursiv then s:=s+'</em>'; 3: if us then s:=s+'</u>'; 4: s:=s+'</font>'; 6: s:=s+'</li>'; end; // case // der letzte Paragraph wird geschlossen s:=s+'</p>';
Nur noch die Leerzeichen stellen ein Problem dar. Während in der RTF-Datei auch mehrere Leerzeichen nebeneinanderstehen können und dann auch korrekt angezeigt werden, ist dies in der HTM-Datei nicht der Fall. Daher ersetzen wir zuerst alle Leerzeichen durch ein Kommentar und ersetzen anschließend diese Kommentare mit dem ensrechenden HTML-Code.
// jetzt Leerzeichen raus for loop:=100 downto 2 do begin s2:=''; for loop2:=1 to loop do s2:=s2+' '; s := StringReplace(s,s2,'<!--'+IntToStr(loop)+'-->', [rfReplaceAll,rfIgnoreCase]); end; for loop:=100 downto 2 do begin s2:=''; for loop2:=1 to loop do s2:=s2+' '; s:=StringReplace(s,'<!--'+IntToStr(loop)+'-->',s2, [rfReplaceAll,rfIgnoreCase]); end;
Zum Abschluss hängen wir noch den Code an, um die HTML-Datei zu vollenden, kopieren das ganze dann in „Dest“ und geben den für „Reihenfolge“ reservierten Speicher wieder frei:
// jetzt sind wir fertig s:=s+'<p align="center"> Erstellt mit rtf2html - © 2001 by Johannes Tränkle - für Delphi-source.de</p></body></html>'; Dest.Lines.Add(s); Reihenfolge.free; Source.Width:=630; Source.Visible:=true;