Parsehtml


El siguiente código muestra cómo analizar un archivo html buscando
Comenzar la Etiqueta
Etiqueta de cierre
Texto sin formato
La siguiente rutina demuestra cómo analizar un archivo html.
doy la bienvenida a alimentar de nuevo a mejorar la rutina, si usted tiene alguna sugerencia/sugerencias por favor hágamelo saber.
rgds
Si Carter

& & & & & & & & COMENZAR BLOQUE de CÓDIGO & & & & & & & & & & & &
unidad de HTMLParse
(***************************************************************************
& nbsp & nbsp & nbsp & nbsp HTMLParse
& nbsp & nbsp & nbsp & nbsp Propósito: Analizar un archivo html para extraer etiquetas y texto sin formato.
& nbsp & nbsp & nbsp & nbsp Copyright © 2003 - PROTECT Software Ltd. Todos Los Derechos Reservados.
& nbsp & nbsp & nbsp & nbsp Todo el código que sigue siendo propiedad de PROTECT Software Ltd y no puede
& nbsp & nbsp & nbsp & nbsp ser cambiado sin su permiso. El uso de este código se concede a
& nbsp & nbsp & nbsp & nbsp cualquier desarrollador privados, comerciales o de código abierto de aplicaciones.
& nbsp & nbsp & nbsp & nbsp Ninguna garantía expresa o implícita. Utilice a su propio riesgo.

& nbsp & nbsp & nbsp & nbsp Contacto:
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp WEB www.tectsoft.com
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Correo electrónico [email protected]
& nbsp & nbsp & nbsp & nbsp Aviso de derechos de Autor Debe Permanecer Con el Archivo.
& nbsp & nbsp & nbsp & nbsp Visita www.tectsoft.com *bajo costo* desarrollador de alojamiento web.
& nbsp & nbsp & nbsp & nbsp Requiere:
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp FastStrings de http://www.droopyeyes.com
& nbsp & nbsp & nbsp & nbsp Uso:
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Ver www.howtodothings.com para la demostración de uso.
****************************************************************************)
interfaz
utiliza las Clases, FastStringFuncs, FastStrings
tipo
& nbsp & nbsp TTagType = (ttBeginTag, ttEndTag, ttRawText)
& nbsp & nbsp THTMLParseProc = procedimiento(const HTMLData: string TagType: TTagType
& nbsp & nbsp & nbsp & nbsp Parámetros: TStrings)
procedimiento ParseHTML(const HTML: string ParseProc: THTMLParseProc)
aplicación
utiliza SysUtils
const
& nbsp & nbsp (* NOTA: descargar el siguiente archivo, los siguientes códigos se equivocan cuando
& nbsp muestra en un navegador como este :-) *)

& nbsp & nbsp THTMLReplaceWords: array[0..4] del array[0..1] de la cadena = ((' ', ' '),
& nbsp & nbsp & nbsp & nbsp (' & ', ' & '), ('<', '<'), ('>', '>'), (''', '''))
procedimiento ParseHTML(const HTML: string ParseProc: THTMLParseProc)
& nbsp & nbsp procedimiento CallTagProc(IsTag: Boolean HTMLData: string)
& nbsp & nbsp var
& nbsp & nbsp & nbsp & nbsp s: string
& nbsp & nbsp & nbsp & nbsp sl: TStringList
& nbsp & nbsp & nbsp & nbsp I: Integer
& nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp HTMLData := Trim(HTMLData)
& nbsp & nbsp & nbsp & nbsp si Longitud(HTMLData) > 0, entonces
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si IsTag, a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si Pos(' ', HTMLData) > 0, entonces

& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp s := Trim(Copia(HTMLData, 1, Pos(' ', HTMLData)))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp s := Trim(HTMLData)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl := TStringList.Crear
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp probar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Texto := Trim(Copia(HTMLData, la Longitud de la(s) 1, length(HTMLData)))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Texto := Trim(FastReplace(sl.Texto, ' ', #13))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Texto := Trim(FastReplace(sl.Texto, '' ', #13))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Texto := Trim(FastReplace(sl.Texto, ''', '))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si LeftStr(s, 1) = '/' entonces
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp THTMLParseProc(ParseProc)(en mayúsculas(s), ttEndTag, sl)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp THTMLParseProc(ParseProc)(en Mayúsculas(s), ttBeginTag, sl)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp finalmente
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Libre
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp end else
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp for I := De 0 a 4
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp HTMLData := FastReplace(HTMLData, THTMLReplaceWords[I, 0],
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp THTMLReplaceWords[I, 1])
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp THTMLParseProc(ParseProc)(HTMLData, ttRawText, nil)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp final
var
& nbsp & nbsp s: string
& nbsp & nbsp P: PChar
begin
& nbsp & nbsp Assert(Asignado(ParseProc))
& nbsp & nbsp P := PChar(HTML)
& nbsp & nbsp s := '
& nbsp & nbsp mientras que P^ <> #0
& nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp caso P^
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp '<':
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp CallTagProc(Falso, s)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp s := '
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp '>':
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp CallTagProc(True, s)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp s := '
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp s := s P^
& nbsp & nbsp & nbsp & nbsp final //caso
& nbsp & nbsp & nbsp & nbsp Inc(P)
& nbsp & nbsp final
fin
final.

& & & & & & & & CÓDIGO de FIN de BLOQUE & & & & & & & & & & & &
Descargas:
Archivo de Origen: HTMLParse.pas
Demostración:
htmlparse.zip
Todos los probados usando D6.









Parsehtml


Parsehtml : Multi-millones de consejos para hacer su vida mas facil.


El siguiente codigo muestra como analizar un archivo html buscando
Comenzar la Etiqueta
Etiqueta de cierre
Texto sin formato
La siguiente rutina demuestra como analizar un archivo html.
doy la bienvenida a alimentar de nuevo a mejorar la rutina, si usted tiene alguna sugerencia/sugerencias por favor hagamelo saber.
rgds
Si Carter

& & & & & & & & COMENZAR BLOQUE de CODIGO & & & & & & & & & & & &
unidad de HTMLParse
(***************************************************************************
& nbsp & nbsp & nbsp & nbsp HTMLParse
& nbsp & nbsp & nbsp & nbsp Proposito: Analizar un archivo html para extraer etiquetas y texto sin formato.
& nbsp & nbsp & nbsp & nbsp Copyright © 2003 - PROTECT Software Ltd. Todos Los Derechos Reservados.
& nbsp & nbsp & nbsp & nbsp Todo el codigo que sigue siendo propiedad de PROTECT Software Ltd y no puede
& nbsp & nbsp & nbsp & nbsp ser cambiado sin su permiso. El uso de este codigo se concede a
& nbsp & nbsp & nbsp & nbsp cualquier desarrollador privados, comerciales o de codigo abierto de aplicaciones.
& nbsp & nbsp & nbsp & nbsp Ninguna garantia expresa o implicita. Utilice a su propio riesgo.

& nbsp & nbsp & nbsp & nbsp Contacto:
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp WEB www.tectsoft.com
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Correo electronico [email protected]
& nbsp & nbsp & nbsp & nbsp Aviso de derechos de Autor Debe Permanecer Con el Archivo.
& nbsp & nbsp & nbsp & nbsp Visita www.tectsoft.com *bajo costo* desarrollador de alojamiento web.
& nbsp & nbsp & nbsp & nbsp Requiere:
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp FastStrings de http://www.droopyeyes.com
& nbsp & nbsp & nbsp & nbsp Uso:
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Ver www.howtodothings.com para la demostracion de uso.
****************************************************************************)
interfaz
utiliza las Clases, FastStringFuncs, FastStrings
tipo
& nbsp & nbsp TTagType = (ttBeginTag, ttEndTag, ttRawText)
& nbsp & nbsp THTMLParseProc = procedimiento(const HTMLData: string TagType: TTagType
& nbsp & nbsp & nbsp & nbsp Parametros: TStrings)
procedimiento ParseHTML(const HTML: string ParseProc: THTMLParseProc)
aplicacion
utiliza SysUtils
const
& nbsp & nbsp (* NOTA: descargar el siguiente archivo, los siguientes codigos se equivocan cuando
& nbsp muestra en un navegador como este :-) *)

& nbsp & nbsp THTMLReplaceWords: array[0..4] del array[0..1] de la cadena = ((' ', ' '),
& nbsp & nbsp & nbsp & nbsp (' & ', ' & '), ('<', '<'), ('>', '>'), (''', '''))
procedimiento ParseHTML(const HTML: string ParseProc: THTMLParseProc)
& nbsp & nbsp procedimiento CallTagProc(IsTag: Boolean HTMLData: string)
& nbsp & nbsp var
& nbsp & nbsp & nbsp & nbsp s: string
& nbsp & nbsp & nbsp & nbsp sl: TStringList
& nbsp & nbsp & nbsp & nbsp I: Integer
& nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp HTMLData := Trim(HTMLData)
& nbsp & nbsp & nbsp & nbsp si Longitud(HTMLData) > 0, entonces
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si IsTag, a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si Pos(' ', HTMLData) > 0, entonces

& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp s := Trim(Copia(HTMLData, 1, Pos(' ', HTMLData)))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp s := Trim(HTMLData)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl := TStringList.Crear
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp probar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Texto := Trim(Copia(HTMLData, la Longitud de la(s) 1, length(HTMLData)))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Texto := Trim(FastReplace(sl.Texto, ' ', #13))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Texto := Trim(FastReplace(sl.Texto, '' ', #13))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Texto := Trim(FastReplace(sl.Texto, ''', '))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si LeftStr(s, 1) = '/' entonces
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp THTMLParseProc(ParseProc)(en mayusculas(s), ttEndTag, sl)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp THTMLParseProc(ParseProc)(en Mayusculas(s), ttBeginTag, sl)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp finalmente
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp sl.Libre
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp end else
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp for I := De 0 a 4
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp HTMLData := FastReplace(HTMLData, THTMLReplaceWords[I, 0],
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp THTMLReplaceWords[I, 1])
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp THTMLParseProc(ParseProc)(HTMLData, ttRawText, nil)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp final
var
& nbsp & nbsp s: string
& nbsp & nbsp P: PChar
begin
& nbsp & nbsp Assert(Asignado(ParseProc))
& nbsp & nbsp P := PChar(HTML)
& nbsp & nbsp s := '
& nbsp & nbsp mientras que P^ <> #0
& nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp caso P^
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp '<':
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp CallTagProc(Falso, s)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp s := '
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp '>':
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp CallTagProc(True, s)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp s := '
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp s := s P^
& nbsp & nbsp & nbsp & nbsp final //caso
& nbsp & nbsp & nbsp & nbsp Inc(P)
& nbsp & nbsp final
fin
final.

& & & & & & & & CODIGO de FIN de BLOQUE & & & & & & & & & & & &
Descargas:
Archivo de Origen: HTMLParse.pas
Demostracion:
htmlparse.zip
Todos los probados usando D6.


Parsehtml

Parsehtml : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación