, Uri, een snelle en gemakkelijke manier om een analytische uri dat commerciële bibliotheek,,, let op: als je een bibliotheek en dan heb je de functie van uri analyse, maar dit kan worden beschouwd als een alternatief voor de analytische methode te controleren, te werken, om te overleven, een krediet van een Artikel, de vlam van anderen code,,,,, gedrukt (netwerk van rechtstreekse verkoop) analytische controles tiduri Uri, iduri eenheid op het internet, klas, professionele, TurboPower ipmisc - eenheden, ipparseurl,,,, ik weet het niet, het is,,,,, uri is een Internet - adres van de Presentatie, de meeste overeenkomst volgt op een Uri.Een uri grammatica is als volgt:,,, [de overeenkomst +://gastheer: [] [] [de] document [# subdirs + merkteken,,, nu ben ik in de analytische wijze opmerkingen van de code, Uri,,, < --------------------- start code --------------------------- >,, isnumber (karakter: tekens): Bull.,,,, de resultaten: = - A, 0123456789) > 0;,,,,, aan het einde van de analytische parameters {; een URL 's op een tstrings, zoals http://search.yahoo.com/bin/search?p=britney+spears,, Dest[0] = 'p=britney+spears',, To access params and values check TStringList.Names and,, TStringList.Values},, procedure SplitParams(const Params: String; Dest: TStrings);,, var,, p: Integer;,, Tmp: String;,, begin,, if not Assigned(Dest) then Exit;,,, Dest.Clear;,, Tmp := Params;,, p := Pos('&', Tmp);,,, while (p > 0) do,, begin,, Dest.Add(Copy(Tmp, 1, p -1));,, Tmp := Copy(Tmp, P+1, Length(Tmp) - p);,, p := Pos('&', Tmp);,, end;,, Dest.Add(Tmp);,, end;,,, {Given an URL check for a query, return the query starting,, position, and the params in Params, this function uses SplitParams},, procedure ProcessQuery(const URL: String; Params: TStrings; var QueryPos: Integer);,, begi/of iets?Is de parameters, toegezonden aan de splitparams,, QUERYPOS:= producentenorganisaties ("?"URL);,,, als QUERYPOS > 0 en splitparams (kopieën (URL, QUERYPOS + 1, lengte (URL) - QUERYPOS), de parameters);,,,,, aan het einde van een URL 's {; gezien de naam,, een bijzondere situatie: 1) de vorm, Als de URL' s. Http: //www.hello.com geen papieren, maar als de vraag naar een terugkeer van de server, dus, geen documenten, 2) als de URL 's vormenhttp://www.hi.com/index.php of HTTP://, www.hi. COM /index. Phpdit of HTTP://www.hi. COM /index. PhpDit?howareyou=hacker,, then document is index.php forget anything else},, function QueryDocument(const URL: String; var DocPos: Integer): String;,, var,, QueryPos, i: Integer;,, begin,, Result := '';,, //check for parameters,, ProcessQuery(URL, nil, QueryPos);,, if (QueryPos > 0) then,, begin,, dec(QueryPos);,, i := QueryPos;,, while URL[QueryPos] <> '/' do dec(i);,, inc(i);, , , Result := Copy(URL, i +1, QueryPos);,, end,, else,, begin,, {QueryPos is not found try to get either a docname or,, check if no document at hand},, i := Length(URL);,, while URL[i] <> '/' do dec(i);,, inc(i);,, DocPos := i;,, if (i >= Pos('://', URL)+3) then,, Result := Copy(URL, i, Length(URL)),, else,, begin,, //No document or url of the form www.hello.com,, Result := '';,, Exit;,, end;,, end;,,, //check for any bookmarks in the document,, if Pos('#', Result) > 0 then,, Result := Copy(Result, 1, Pos('#', Result) -1);,, if pos('/', Result) >0 then,, Delete(Result, pos('/', Result), 1);,, end;,,, {Query the port number of a url if any,, EG. www.hello.com:8000,, QueryPort will return 8000 else it will return 0},, function QueryPort(const URL: String): Integer;,, var,, DotIdx, SlashIdx: Integer;,, Tmp, Buffer: String;,, begin,, Tmp := URL;,, if Pos('://', Tmp) > 0 then,, Delete(Tmp, Pos('://', Tmp), 3);,, SlAshIdx: = - ("/", Tmp) - 1;,, als SlashIdx < 0 = lengte dan, SlashIdx: (Tmp);,, DotIdx: = - (":", Tmp); en, als DotIdx < ///////0, geen haven nummer dan, zo gracefully, uitgang, uitgang;,, buffer: = - (Tmp, DotIdx+1, SlashIdx);,, val (buffer, het resultaat, DotIdx);,,,,,,, {Query a boekenlegger in een document, EG. www.hello.com/index.htm#notwelcome,, QueryBookMark zal terug'notwelcome'}, functie, QueryBookmark (totaal: draad):,, var, string. HashPos: het gehele getal;,,,,, ik QuestionPos: het gehele getal;,, HashPos:= - ('#', URL);,, als (HashPos < = 0). Uit de QuestionPos:=;,, - ("?",,, URL); als (questionpos < = 0), dan questionpos:= (URL); de lengte van de,, (URL: = kopiëren, hashpos + 1, questionpos-1);,,,,, het einde van de procedure; parseuri (totaal uri string; var: de gastheer, documenten, een merkteken, havens:...;); queryparams:tstrings, var, de QUERYPOS, docpos: gehele getal;,,,, processquery (Uri, queryparams, QUERYPOS);,, merkteken: = querybookmark (uri);,, haven: = IntToStr (queryport (uri)); en, querydocument documenten: = (Uri, docpos); en voorzitter:, = - (Uri, 1, docpos - 1);,, aan het einde van ---------------------;,, < einde van de code standpunt >,,, en trouwens het algoritme kan worden uitgebreid, enzovoort, daar werk ik aan.Nog suggesties, opmerkingen en kritiek, laat opmerkingen.,,,,,, de bekende fout: * volgens sommige berichten - functies niet is wat het zou moeten zijn, niet worden gebruikt voor de achteruit. - snel, * * * * * * is, ik weet dat dit niet de beste methode voor de analyse van De Uri, en ik werken versterking en de code.
Resolutie van
Previous:A filesize
Next Page:Deel vormen,