, følgende kode viser, hvordan til at analysere en html fil efter,,, begynde at øremærke,,,,, rå tekst, følgende rutine viser, hvordan at analysere en html fil.,,, jeg glæder mig over foder tilbage for at forbedre rutine, hvis du har nogen forslag /antyder, - jeg ved, rgds.,,,,,,,,, si carter,,,, ---------------- begynde kode blok ------------------------, enhed htmlparse;,, (***************************************************************************,,, htmlparse, formål: at analysere en html fil at udvinde tags og almindelig tekst.,,, ophavsret © 2003 - beskytte software ltd eneret.,,, kode er ejendom af beskytte software ltd og kan ikke ændres uden tilladelse.anvendelsen af denne kodeks er ydet til enhver entreprenør til private, open source - eller kommercielle anvendelser.,,, ingen garanti udtrykt eller stiltiende.anvendelse på egen risiko.,,,, kontakt:,, web - www.tectsoft. kom, e - mail - støtte @ tectsoft. kom, ophavsret meddelelse skal forblive hos fil.,,, besøg www.tectsoft.com til lave omkostninger. * * udvikler miljøvenlige webhosting.,,, kræver:,, faststrings fra http: ////////www.droopyeyes. kom, brug:,, se www.howtodothings.com for demo anvendelse.,,,,,, ****************************************************************************) interface, bruger klasser, faststringfuncs, faststrings,,,,,,,,, ttagtype = (ttbegintag, ttendtag, ttrawtext);,, thtmlparseproc = procedure (denne htmldata: string. tagtype - ttagtype;,, parametre: tstrings);,,, procedure parsehtml (denne html: string; parseproc: thtmlparseproc);,,, implementation,,, 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 testes d6.,
parsehtml
Previous:icontobitmap
Next Page:bedre system debugger form