Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   HTML2Text - noch buggy? [Diskussion] (https://www.delphipraxis.net/53187-html2text-noch-buggy-%5Bdiskussion%5D.html)

marabu 13. Aug 2005 15:42

Re: HTML2Text - noch buggy?
 
Hi bigg,

immer wenn ein Quelltext monotone Passagen aufweist, wie deiner die endlose If-Strecke, dann macht es Sinn nach einer Alternative zu suchen. Für deinen Zweck wäre ein Dictionary eine gute Lösung und die StringList bietet dir über die Objects[] sogar noch die Lookup-Funktionalität.

Wenn du die vom W3 Consortium herausgegebene Liste der character entities für den Ansi-Bereich (#160 bis #255 und die 5 Metazeichen quot, amp, gt, lt und apos) in eine StringList einträgst,

Delphi-Quellcode:
sl.AddObject('quot', Pointer(34));
dann kannst du zumindest den Code für die Übersetzung der named entities deutlich übersichtlicher gestalten.

Freundliche Grüße vom marabu

PS: HTML2Text ist vielleicht etwas irreführend, denn es wird ja kein markup code in Text umgewandelt. Und vergiss nicht, dass character entities auch durch " oder & #34; repräsentiert werden können.

turboPASCAL 13. Aug 2005 15:50

Re: HTML2Text - noch buggy?
 
Zitat:

Zitat von bigg
Code:
  ...
  [b]if[/b] s = 'uml' [b]then[/b] Result := [color=#ff001f]'¨';[/color]
  [color=green]// if s = 'uml' then Result := '~';[/color]
  ...

Fehler vom DP - Parser ?!

bigg 13. Aug 2005 16:01

Re: HTML2Text - noch buggy?
 
@marabu:
Da gebe ich dir vollkommen recht, so könnte man die Liste durchlaufen und gegenfalls abbrechen,
sofern ein Sonderzeichen gefunden wurde.

@turbo:
Ja, ist ein Fehler des Parsers.

marabu 13. Aug 2005 16:06

Re: HTML2Text - noch buggy?
 
Bitte die Liste NICHT durchlaufen!

Delphi-Quellcode:
var
  slDict: TStringList;
  s: string;
  index: integer;
begin
  s := 'quot';
  slDict.AddObject(s, Pointer(34));
  index := slDict.IndexOfName(s);
  if index < 0
    then CheckForCodedEntity(s)
    else s := Chr(Integer(slDict.Objects[index]));
end;
marabu

PS: Du denkst bestimmt daran, dass du slDict.CaseSensitive auf true setzen musst, stimmts?

bigg 13. Aug 2005 19:27

Re: HTML2Text - noch buggy?
 
moin marabu,

Zitat:

PS: Du denkst bestimmt daran, dass du slDict.CaseSensitive auf true setzen musst, stimmts?
Ich denke nicht daran :mrgreen: Sollte ich etwa?
Und warum sollte ich es so, wie in deinem Beispiel machen?
Wo ist da der Vorteil gegenüber einer normalen Liste?

malo 13. Aug 2005 19:35

Re: HTML2Text - noch buggy?
 
Zitat:

Zitat von bigg
moin malo,

was ignoriere ich :gruebel:
Ich habe doch Flockes und Marabu's- Kommentar befolgt.

Ich meinte einmal, dass "uml;" als Rückgabewert der Funktion HTML2Char "&uml;" zurückgegeben hat. Dass es ein Fehler im DP-Parser war, wusste ich nicht. Trotzdem bist du darauf nicht eingegangen. Und auch der Ratschlag mit der Performence (hinter jedes if ein else) wurde (noch) nicht berücksichtigt.

Sorry, wenn ich etwas "hart" aufgetreten bin, aber mir ist halt aufgefallen, dass zu beiden Kritiken nichts geantwortet/getan wurde ;)

marabu 13. Aug 2005 19:45

Re: HTML2Text - noch buggy?
 
Zitat:

Zitat von bigg
Ich denke nicht daran - Sollte ich etwa?

"Auml" ist nicht "auml" - erinnerst du dich? Wenn du CaseSensitive nicht einschaltest, dann wird ab und zu der falsche Index ermittelt.

Zitat:

Zitat von bigg
Und warum sollte ich es so, wie in deinem Beispiel machen?

Meine Beiträge sind ein Angebot und kein Diktat - es tut mir sehr leid, wenn ich missverstanden werde.

marabu

Mystic 13. Aug 2005 20:30

Re: HTML2Text - noch buggy?
 
Es gibt auch die Form (das Beispiel hier steht für das Zeichen ) für Character Entities. Entities mit Zahlen bis 255 stehen für Zeichen aus dem ASCII-Zeichensatz, alles darüber für Zeichen aus dem Unicode-Zeichensatz.

edit: So wies aussieht hat escaped das Board hier die numerischen Entities nicht. :evil:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 Uhr.
Seite 2 von 2     12   

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