AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Liste als HTML speichern

Ein Thema von robinWie · begonnen am 10. Aug 2006 · letzter Beitrag vom 10. Aug 2006
Antwort Antwort
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#1

Liste als HTML speichern

  Alt 10. Aug 2006, 16:26
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:
[...] 0 | Größe: 3576 KB 0029. A-HA - Analogue (All I Want) | Jahr: 2006 | Größe: 5396 KB 0030. A-Ha - Crying In The Rain | Jahr: 1990 | Größe: 4136 KB 0031. A-ha - Stay on these roads | Jahr: 1988 | Größe: 4480 KB 0032. A-Ha - Take On Me | Jahr: | Größe: 3538 KB 0033. A-Ha - The Living Daylight | Jahr: 1987 | Größe: 3978 KB 0034. A-Ha - The Sun Always Shines On Tv | Jahr: | Größe: 4826 KB 0035. Aha - Hunting High And Low | Jahr: | Größe: 3518 KB 0036. A-Teens - Upside Down | Jahr: 2001 | Größe: 4560 KB 0037. A. Franklin & George Michael - Knew You Were Waiting | Jahr: 1987 | Größe: 3732 KB 0038. Aaliyah Feat. Timbaland - Try Again | Jahr: 2000 | Größe: 4378 KB 0039. Aaron Carter - Crush on You | Jahr: 1997 | Größe: 5240 KB 0040. Aaron Carter - Crush on You | Jahr: 1997 | Größe: 3238 KB 0041. ABBA - Chiquitita | Jahr: [...]
aber ich will das alles fein säuberlich untereinander steht, aber wie mache ich das. Schon mal vorweg: von html code habe ich kein plan, also eine erklärung für dummies

Danke im Voraus

Robin
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Liste als HTML speichern

  Alt 10. Aug 2006, 16:48
Eine Liste in HTML sieht so aus:
Code:
<ul>[*]Element1[*]Element2[*]Element3[/list]
Jetzt musst du das halt an dein Programm anpassen:
Delphi-Quellcode:
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>';
Und dann kannst du's speichern
Benjamin
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Liste als HTML speichern

  Alt 10. Aug 2006, 17:16
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.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz