AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tags aus HTML-Code entfernen

Ein Thema von Gambit · begonnen am 19. Mai 2004 · letzter Beitrag vom 19. Mai 2004
Antwort Antwort
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#1

Tags aus HTML-Code entfernen

  Alt 19. Mai 2004, 15:03
Moin,

ich habe hier folgenden Code, mit dem ich Tags aus HTML-Code entfernen möchte:

Delphi-Quellcode:
While containsTags = True do begin
      If (AnsiContainsText(HTMLCode, '<')) and (AnsiContainsText(HTMLCode, '>')) then begin
        containsTags:= True;
        Pos1:= AnsiPos('<', HTMLCode);
        Pos2:= AnsiPos('>', HTMLCode);
        Delete(HTMLCode, Pos1, Pos2-Pos1+1);
      end else containsTags:= False;
    end;
Das funzt ganz gut, versagt aber mit einer Endlosschleife, wenn der HTML-Code fehlerhaft ist, also zb. mitten im Text nach anderen Tags ein br> (hier fehlt die spitze Klammer auf) steht und noch weitere Tags folgen.

Beispiel:

<td colspan=3>F.R.I.E.N.D.S - Die Serie ist das TV-Phänomen der letzten Jahre. Die Geschichten von sechs Freunden, die in New York Liebe und Leben meistern, hat eine weltweite Fan-Gemeinde. Kein Wunder, daß die Besetzung immer noch die selbe ist, wie beim Start im Jahre 1994.



b>Episoden:[/b] // Hier der Fehler im HTML-Code
[*]Durch den Wind
[*]Ist das Leben nicht schlecht?
[*]Im Namen der Männlichkeit

Ergebnis der Routine oben ist eine Endlosschleife.

Hat da jemand ne Idee?

Gruß

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Tags aus HTML-Code entfernen

  Alt 19. Mai 2004, 15:06
Hi,

ist zwar nicht so schnell, aber du könntest mit StringReplace und die HTML-Tag durch '' ersetzen.

Oder du schaust dich nach einem Hier im Forum suchenHTML Parser oder einer RegEx-Lib (http://regexpstudio.com/ z.B.) um.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Tags aus HTML-Code entfernen

  Alt 19. Mai 2004, 15:11
Zu gleichem hab ich gestern auch ne Funktion geschrieben. Du musst einfach nur prüfen ob ">" auch nach "<" kommt und nicht vorher

Hier der source (der auf jeden Fall verbesserungswürdig ist)
Delphi-Quellcode:
function TForm1.fRemoveTags(AText: String): String;
var LStart, LEnd: Integer;
begin
  LStart := pos('<', AText);
  LEnd := 0;
  if LStart > 0 then
  begin
    LStart := LStart + 1;
    LEnd := PosEx('>', AText, LStart);
  end;
  while (LStart > 0) and (LEnd > LStart) do
  begin
    AText := copy(AText, 1, LStart - 2) + copy(AText, LEnd + 1, length(AText));
    LStart := pos('<', AText);
    if LStart > 0 then
    begin
      LStart := LStart + 1;
      LEnd := PosEx('>', AText, LStart);
    end;
  end;
  result := AText;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#4

Re: Tags aus HTML-Code entfernen

  Alt 19. Mai 2004, 16:32
in der delphi-source library findet sich uach ein beitrag dazu!
Klick
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#5

Re: Tags aus HTML-Code entfernen

  Alt 19. Mai 2004, 18:18
Besten Dank für die Tipps. Wobei ich das mit dem StringReplace noch nicht so ganz begriffen habe. Woher weiß ich denn was in den Tags steht? StringReplace(AText, '<*>', '') geht ja wohl nicht, oder?

Gruß

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#6

Re: Tags aus HTML-Code entfernen

  Alt 19. Mai 2004, 19:36
bei der lösung müsstest du soweit ich das verstanden habe alle tags einzeln entfernen. erst alle [b] dann alle [i] dann alle... und zwar jedes manuell!
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#7

Re: Tags aus HTML-Code entfernen

  Alt 19. Mai 2004, 19:43
Stichwort Reguläre Ausdrücke - Dazu sollte sich genug finden!
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#8

Re: Tags aus HTML-Code entfernen

  Alt 19. Mai 2004, 19:43
Achso...naja...aber die Lösung vom Sir Thornberry funzt auch gut, wobei man da vielleicht auch mit "Delete" arbeiten könnte anstelle der Concatenation...

gruß

Gambit
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#9

Re: Tags aus HTML-Code entfernen

  Alt 19. Mai 2004, 19:48
Zitat von Onz:
Stichwort Reguläre Ausdrücke - Dazu sollte sich genug finden!
Ich weiß wohl, was ein regulärer Ausdruck ist, aber nicht, wie ich da einen einbauen sollte...

Gruß

Gambit
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#10

Re: Tags aus HTML-Code entfernen

  Alt 19. Mai 2004, 19:50
Bei Google suchenReguläre Ausdrücke Delphi
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:52 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