![]() |
Liste als HTML speichern
Hallo
wie kann ich eine Liste aus einem TMemo oder einer TStringList als HTML speichern?. Ich habe es mit Memo.Lines.SaveToFile() versucht und als Dateierweiterung einfach .html angegeben. Es wurde auch gescpeicher nur keine Liste. Das ganze saht dann so aus Zitat:
Danke im Voraus Robin |
Re: Liste als HTML speichern
Eine Liste in HTML sieht so aus:
Code:
Jetzt musst du das halt an dein Programm anpassen:
<ul>[*]Element1[*]Element2[*]Element3[/list]
Delphi-Quellcode:
Und dann kannst du's speichern
for i:=0 to Memo1.Lines.Count-1 do
Memo1.Lines[i]:='[*]'+Memo1.Lines[i]+''; Memo1.Text:='<html><body><ul>'+Memo1.Text+'[/list]</body></html>'; |
Re: Liste als HTML speichern
Wie die Liste aussieht, hat Benjamin geschrieben. Ich würd hingehen, und mir eine neue Klasse definieren, welche dann direkt beim Speichern und Laden die Arbeit verrichtet...
Ich hab hier mal die Klasse mir der neuen SaveToFile Methode implementiert... Eine LoadFromFile geht dann analog, nur dass hier die html Tags wieder entfernt werden müssen, und die durch Zeilenumbrüche ersetzt werden müssen. edit: Hier nun doch auch mit der LoadFromFile Implementierung... Eine genauere Prüfung beim Laden könnte aber eventuell noch sinnvoll sein.
Delphi-Quellcode:
unit HTMLStringList ;
interface uses Classes; type THTMLStringList = class (TStringList) procedure SaveToFile (const Filename : string) ; override ; procedure LoadFromFile (const Filename : string) ; override ; end ; implementation uses SysUtils; { THTMLStringList } procedure THTMLStringList.LoadFromFile(const Filename: string); begin inherited; // Zeilenumbrüche erst entfernen, da die für HTML nicht relevant sind Text := StringReplace (Text,#10,'',[rfReplaceAll,rfIgnoreCase]) ; Text := StringReplace (Text,#13,'',[rfReplaceAll,rfIgnoreCase]) ; // Tags durch Zeilenumbrüche ersetzen Text := StringReplace (Text,'',#13,[rfReplaceAll,rfIgnoreCase]) ; // und restlichen html Tags entfernen, die mit der Liste zu haben Text := StringReplace (Text,'[*]','',[rfReplaceAll,rfIgnoreCase]) ; Text := StringReplace (Text,'<ul>','',[rfReplaceAll,rfIgnoreCase]) ; Text := StringReplace (Text,'[/list]','',[rfReplaceAll,rfIgnoreCase]) ; end; procedure THTMLStringList.SaveToFile(const Filename: string); var FS : TFileStream ; i, L: Integer; S : string ; begin if count > 0 then begin FS := TFileStream.Create (Filename,fmCreate) ; FS.Write ('<ul>',4) ; for i := 0 to Count - 1 do begin S := strings[i] ; S := '[*]' + S + '' ; L := length (S) ; FS.Write(S[1],L) ; end; FS.Write ('[/list]',5) ; FS.free ; end else inherited SaveToFile (Filename) ; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:55 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