,, de volgende code toont hoe de analytische: //europa.eu.int /comm /documenten zoeken,,, aan het begin en einde van de oorspronkelijke tekst, de etikettering, de,,, wordt de volgende procedure toont aan hoe de analytische http: //europa.eu.int).,,, ben ik ingenomen met de Verbetering van de conventionele feedback, als je van een voorstel of een hint, laat het me dan weten,,,,, SER, Carter, si,,,, aan het begin van de code ------------------------ ----------------,,,,, (*************************************************************************** eenheden HtmlParser;,,,,, HtmlParser doel: winning van etiketten en documenten, analyse van de tekst: //europa.eu.int /comm /.,,, de bescherming van het auteursrecht © 2003 software Co. Ltd, alle rechten voorbehouden.,,, de code nog is de bescherming van de intellectuele - eigendomsrechten software bedrijf mag veranderen.Het gebruik van deze code worden verleend voor de particuliere en commerciële toepassing van open source of elke ontwikkeling van personeel, en om ervoor te zorgen dat dat niet de impliciete of van een garantie.Gebruik je eigen risico.,,,,,, contact met het netwerk ter ondersteuning van www.tectsoft. COM, e - mail @ tectsoft. COM,,, verklaring van het auteursrecht moet in het dossier.,,, naar de lage kosten van de ontwikkelaars van de * * * * * * * * www.tectsoft.com vriendelijke web hosting.,,,,, faststrings eisen: HTTP://www.droopyeyes. COM,,,,, kijk gebruik: demonstratie van het gebruik van www.howtodothings.com.,,,,,,,, ****************************************************************************) interfaces, het gebruik van faststringfuncs faststrings;,,,,,,, ttagtype = (ttbegintag, ttendtag, ttrawtext);,, thtmlparseproc = programma (totaal htmldata: touw; tagType:ttagtype parameters: tstrings;,,,,,); het programma parsehtml (totaal: //europa.eu.int /comm /.; parseproc:thtmlparseproc);,,, dat den,,, uses SysUtils;,,, const,, ,(* NOTE: download the file below, the following codes are wrong when,, displayed in a browser like this :-) *),,, THTMLReplaceWords: array[0..4] of array[0..1] of string = ((' ', ' '),,, ('&', '&'), ('<', '<'), ('>', '>'), ('"', '"'));,,, procedure ParseHTML(const HTML: string; ParseProc: THTMLParseProc);,,, procedure CallTagProc(IsTag: Boolean; HTMLData: string);,, var,, s: string;,, sl: TStringList;,, I: Integer;,, begin,, HTMLData := Trim(HTMLData);,, if Length(HTMLData) > 0 then,, begin,, if IsTag then,, begin,, if Pos(' ', HTMLData) > 0 then, , , s := Trim(Copy(HTMLData, 1, Pos(' ', HTMLData))),, else,, s := Trim(HTMLData);,,, sl := TStringList.Create;,, try,, sl.Text := Trim(Copy(HTMLData, Length(s) + 1, length(HTMLData)));,, sl.Text := Trim(FastReplace(sl.Text, ';', #13));,, sl.Text := Trim(FastReplace(sl.Text, '" ', #13));,, sl.Text := Trim(FastReplace(sl.Text, '"', ''));,,, if LeftStr(s, 1) = '/' then,, THTMLParseProc(ParseProc)(uppercase(s), ttEndTag, sl),, else,, THTMLParseProc(ParseProc)(UpperCase(s), ttBeginTag, sl);,, finally,, sl.Free;,, end;,, end else,, begin,, for I := 0 to 4 do,, HTMLData := FastReplace(HTMLData, THTMLReplaceWords[I, 0],,, THTMLReplaceWords[I, 1]);,,, THTMLParseProc(ParseProc)(HTMLData, ttRawText, nil);,, end;,, end;,, end;,,, var,, s: string;,, P: PChar;,, begin,, Assert(Assigned(ParseProc));,, P := PChar(HTML);,, s := '';,,, while P^ <> #0 do,, begin,, case P^ of,, '<':,, begin,, CallTagProc(False, s);,, s := '';,, end;,, '>':,, begin,, CallTagProc(True, s);,, s := '';,, end;,, else,, s := s + P^;,, end; //case,, Inc(P);,, end;,, end;,,, end.,,,, ---------------- END CODE BLOCK ------------------------,,, Downloads:,,, Source File: HTMLParse.pas,,, Demo:,, htmlparse.zip,,Alle testen, met D6.
Parsehtml
Previous:Icontobitmap