Parsehtml


Le code suivant montre comment analyser un fichier html à la recherche pour
Commencer la Balise
Balise de Fin
Texte Brut
La routine suivante montre comment analyser un fichier html.
je vous souhaite la bienvenue feed-back pour améliorer la routine, si vous avez des suggestions/conseils s'il vous plaît laissez-moi savoir.
rgds
Si Carter

& & & & & & & & COMMENCER BLOC de CODE & & & & & & & & & & & &
unité de HTMLParse
(***************************************************************************
& ! & ! & ! & nbsp HTMLParse
& ! & ! & ! & nbsp Objectif: Analyser un fichier html d'extraire les balises et le texte brut.
& ! & ! & ! & nbsp Copyright © 2003 - TECT Software Ltd. Tous Droits Réservés.
& ! & ! & ! & nbsp de Tous les codes demeurent la propriété de TECT Software Ltd et ne peut pas
& ! & ! & ! & nbsp être modifié sans autorisation. L'utilisation de ce code est accordée à
& ! & ! & ! & nbsp tout développeur privé, open source ou commerciaux.
& ! & ! & ! & nbsp Aucune garantie expresse ou implicite. Utilisez à votre propre risque.

& ! & ! & ! & nbsp Contact:
& ! & ! & ! & ! & ! & nbsp WEB www.tectsoft.com
& ! & ! & ! & ! & ! & nbsp e-Mail - [email protected]
& ! & ! & ! & nbsp Avis de droit d'Auteur Doit Rester Avec le Fichier.
& ! & ! & ! & nbsp Visite www.tectsoft.com *faible coût* développeur web adapté à l'hébergement.
& ! & ! & ! & nbsp Nécessite:
& ! & ! & ! & ! & ! & nbsp FastStrings de http://www.droopyeyes.com
& ! & ! & ! & nbsp Utilisation:
& ! & ! & ! & ! & ! & nbsp Voir www.howtodothings.com pour la démo d'utilisation.
****************************************************************************)
interface
utilise des Classes, FastStringFuncs, FastStrings
type
& nbsp & nbsp TTagType = (ttBeginTag, ttEndTag, ttRawText)
& nbsp & nbsp THTMLParseProc = procédure(const HTMLData: string TagType: TTagType
& ! & ! & ! & nbsp Paramètres: TStrings)
procédure ParseHTML(const HTML: string ParseProc: THTMLParseProc)
application
utilise SysUtils
const
& nbsp & nbsp (* REMARQUE: téléchargez le fichier ci-dessous, les codes suivants sont mauvais quand
& nbsp affiché dans un navigateur comme ceci :-) *)

& nbsp & nbsp THTMLReplaceWords: array[0..4], array[0..1] de la chaîne = ((' ', ' '),
& ! & ! & ! & nbsp (' & ', ' & '), ('<', '<'), ('>', '>'), (''', '''))
procédure ParseHTML(const HTML: string ParseProc: THTMLParseProc)
& nbsp & nbsp procédure CallTagProc(IsTag: Boolean HTMLData: string)
& nbsp & nbsp var
& ! & ! & ! & nbsp s: string
& ! & ! & ! & nbsp sl: TStringList
& ! & ! & ! & nbsp I: Integer
& nbsp & nbsp commencer
& ! & ! & ! & nbsp HTMLData := Trim(HTMLData)
& ! & ! & ! & nbsp si la Longueur(HTMLData) > 0, alors
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp si IsTag puis
& ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp si Pos(' ', HTMLData) > 0, alors

& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp s := Trim(Copie(HTMLData, 1, Pos(' ', HTMLData)))
& ! & ! & ! & ! & ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp s := Trim(HTMLData)
& ! & ! & ! & ! & ! & ! & ! & nbsp sl := TStringList.Créer
& ! & ! & ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp sl.Texte := Trim(Copie(HTMLData, Longueur(s) 1, longueur(HTMLData)))
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp sl.Texte := Trim(FastReplace(sl.Texte, ' ', #13))
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp sl.Texte := Trim(FastReplace(sl.Texte, '' ', #13))
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp sl.Texte := Trim(FastReplace(sl.Texte, ''', '))
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si LeftStr(s, 1) = '/' alors
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp THTMLParseProc(ParseProc)(en majuscules(s), ttEndTag, sl)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp THTMLParseProc(ParseProc)(en Majuscules(s), ttBeginTag, sl)
& ! & ! & ! & ! & ! & ! & ! & nbsp enfin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp sl.Gratuit
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp fin else
& ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp for I := 0 to 4 do
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp HTMLData := FastReplace(HTMLData, THTMLReplaceWords[I, 0],
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp THTMLReplaceWords[I, 1])
& ! & ! & ! & ! & ! & ! & ! & nbsp THTMLParseProc(ParseProc)(HTMLData, ttRawText, nil)
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
& nbsp & nbsp fin
var
& nbsp & nbsp s: string
& nbsp & nbsp P: PChar
begin
& nbsp & nbsp Assert(Attribué(ParseProc))
& nbsp & nbsp P := PChar(HTML)
& nbsp & nbsp s := '
& nbsp & nbsp tandis que les P^ <> #0 do
& nbsp & nbsp commencer
& ! & ! & ! & nbsp cas P^
& ! & ! & ! & ! & ! & ! '<':
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp CallTagProc(Faux, s)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp s := '
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! '>':
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp CallTagProc(True, s)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp s := '
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & nbsp s :s = P^
& ! & ! & ! & nbsp fin //
& ! & ! & ! & nbsp Inc(P)
& nbsp & nbsp fin
fin
à la fin.

& & & & & & & & le CODE de FIN de BLOC & & & & & & & & & & & &
Téléchargements:
Fichier Source: HTMLParse.pas
Démo:
htmlparse.zip
Tous nos produits sont testés à l'aide de D6.









Parsehtml


Parsehtml : Plusieurs milliers de conseils pour vous faciliter la vie.


Le code suivant montre comment analyser un fichier html a la recherche pour
Commencer la Balise
Balise de Fin
Texte Brut
La routine suivante montre comment analyser un fichier html.
je vous souhaite la bienvenue feed-back pour ameliorer la routine, si vous avez des suggestions/conseils s'il vous plaît laissez-moi savoir.
rgds
Si Carter

& & & & & & & & COMMENCER BLOC de CODE & & & & & & & & & & & &
unite de HTMLParse
(***************************************************************************
& ! & ! & ! & nbsp HTMLParse
& ! & ! & ! & nbsp Objectif: Analyser un fichier html d'extraire les balises et le texte brut.
& ! & ! & ! & nbsp Copyright © 2003 - TECT Software Ltd. Tous Droits Reserves.
& ! & ! & ! & nbsp de Tous les codes demeurent la propriete de TECT Software Ltd et ne peut pas
& ! & ! & ! & nbsp etre modifie sans autorisation. L'utilisation de ce code est accordee a
& ! & ! & ! & nbsp tout developpeur prive, open source ou commerciaux.
& ! & ! & ! & nbsp Aucune garantie expresse ou implicite. Utilisez a votre propre risque.

& ! & ! & ! & nbsp Contact:
& ! & ! & ! & ! & ! & nbsp WEB www.tectsoft.com
& ! & ! & ! & ! & ! & nbsp e-Mail - [email protected]
& ! & ! & ! & nbsp Avis de droit d'Auteur Doit Rester Avec le Fichier.
& ! & ! & ! & nbsp Visite www.tectsoft.com *faible coût* developpeur web adapte a l'hebergement.
& ! & ! & ! & nbsp Necessite:
& ! & ! & ! & ! & ! & nbsp FastStrings de http://www.droopyeyes.com
& ! & ! & ! & nbsp Utilisation:
& ! & ! & ! & ! & ! & nbsp Voir www.howtodothings.com pour la demo d'utilisation.
****************************************************************************)
interface
utilise des Classes, FastStringFuncs, FastStrings
type
& nbsp & nbsp TTagType = (ttBeginTag, ttEndTag, ttRawText)
& nbsp & nbsp THTMLParseProc = procedure(const HTMLData: string TagType: TTagType
& ! & ! & ! & nbsp Parametres: TStrings)
procedure ParseHTML(const HTML: string ParseProc: THTMLParseProc)
application
utilise SysUtils
const
& nbsp & nbsp (* REMARQUE: telechargez le fichier ci-dessous, les codes suivants sont mauvais quand
& nbsp affiche dans un navigateur comme ceci :-) *)

& nbsp & nbsp THTMLReplaceWords: array[0..4], array[0..1] de la chaîne = ((' ', ' '),
& ! & ! & ! & nbsp (' & ', ' & '), ('<', '<'), ('>', '>'), (''', '''))
procedure ParseHTML(const HTML: string ParseProc: THTMLParseProc)
& nbsp & nbsp procedure CallTagProc(IsTag: Boolean HTMLData: string)
& nbsp & nbsp var
& ! & ! & ! & nbsp s: string
& ! & ! & ! & nbsp sl: TStringList
& ! & ! & ! & nbsp I: Integer
& nbsp & nbsp commencer
& ! & ! & ! & nbsp HTMLData := Trim(HTMLData)
& ! & ! & ! & nbsp si la Longueur(HTMLData) > 0, alors
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp si IsTag puis
& ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp si Pos(' ', HTMLData) > 0, alors

& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp s := Trim(Copie(HTMLData, 1, Pos(' ', HTMLData)))
& ! & ! & ! & ! & ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp s := Trim(HTMLData)
& ! & ! & ! & ! & ! & ! & ! & nbsp sl := TStringList.Creer
& ! & ! & ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp sl.Texte := Trim(Copie(HTMLData, Longueur(s) 1, longueur(HTMLData)))
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp sl.Texte := Trim(FastReplace(sl.Texte, ' ', #13))
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp sl.Texte := Trim(FastReplace(sl.Texte, '' ', #13))
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp sl.Texte := Trim(FastReplace(sl.Texte, ''', '))
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si LeftStr(s, 1) = '/' alors
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp THTMLParseProc(ParseProc)(en majuscules(s), ttEndTag, sl)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp THTMLParseProc(ParseProc)(en Majuscules(s), ttBeginTag, sl)
& ! & ! & ! & ! & ! & ! & ! & nbsp enfin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp sl.Gratuit
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp fin else
& ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp for I := 0 to 4 do
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp HTMLData := FastReplace(HTMLData, THTMLReplaceWords[I, 0],
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp THTMLReplaceWords[I, 1])
& ! & ! & ! & ! & ! & ! & ! & nbsp THTMLParseProc(ParseProc)(HTMLData, ttRawText, nil)
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
& nbsp & nbsp fin
var
& nbsp & nbsp s: string
& nbsp & nbsp P: PChar
begin
& nbsp & nbsp Assert(Attribue(ParseProc))
& nbsp & nbsp P := PChar(HTML)
& nbsp & nbsp s := '
& nbsp & nbsp tandis que les P^ <> #0 do
& nbsp & nbsp commencer
& ! & ! & ! & nbsp cas P^
& ! & ! & ! & ! & ! & ! '<':
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp CallTagProc(Faux, s)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp s := '
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! '>':
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp CallTagProc(True, s)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp s := '
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp else
& ! & ! & ! & ! & ! & nbsp s :s = P^
& ! & ! & ! & nbsp fin //
& ! & ! & ! & nbsp Inc(P)
& nbsp & nbsp fin
fin
a la fin.

& & & & & & & & le CODE de FIN de BLOC & & & & & & & & & & & &
Telechargements:
Fichier Source: HTMLParse.pas
Demo:
htmlparse.zip
Tous nos produits sont testes a l'aide de D6.


Parsehtml

Parsehtml : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation