亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? httputil.pas

?? 用delphi 編寫的 驗(yàn)證碼識(shí)別程序
?? PAS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
unit HTTPutil;

interface

uses
  StrUtils, Classes, SysUtils, Forms, Registry, Windows, IniFiles, StdCtrls, ComCtrls, 
  CPUid, AES, 
  Dialogs;

const
  MY_USER_AGENT            =       'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Alexa Toolbar; mxie; .NET CLR 1.1.4322)';

  LSTB_MAX_LINE            =       500;

  RD_ST_CN = '{';
  RD_ED_CN = '}';
  RD_ST_EN = '(';
  RD_ED_EN = ')';

  DT_CN : array[0..31] of String[3] =(' - ',' 8 ',' @ ',' * ',
                                      ' _ ',' + ',' = ',' ^ ',
                                      ' : ',' . ',' ! ',' 0 ',
                                      ' I ',' o ',' O ',' U ',
                                      ' X ',' x ',' v ',' V ',
                                      ' M ',' m ',' T ',' Y ',
                                      ' A ',' H ',' # ',' % ',
                                      ' ~ ',' < ',' > ',' ? '
                                      );
  DT_NM : array[0..9] of String[2] = ('0','1','2','3',
                                      '4','5','6','7',
                                      '8','9');
  DT_EN : array[0..25] of String[2] = ('a','b','c','d',
                                      'e','f','g','h',
                                      'i','j','k','l',
                                      'm','n','o','p',
                                      'q','r','s','t',
                                      'u','v','w','x',
                                      'y','z'
                                      );

  procedure RemoveEnter(var s : string);
  procedure GetIniSecStrings(Ini : TiniFile; Sec : String; Strs : TStrings);
  function MsgBox(Info: String; Style: integer): integer;
  function GetValByName(S,Sub: string) : string;
  function ExtractHtmlTagValues(const HtmlText: string; TagName, AttribName: string; var Values: TStringList): integer;
  function URLEncode(const msg : String) : String;
  function UrlDecode(const EncodedStr: String): String;
  Function HexToInt(Hex :String):Int64;

  function GetHexCPUid : string;
  function ClearRegCode : boolean;
  function ReadRegCode : boolean;
  function WriteRegCode : boolean;
  procedure CheckRegCode(Code : string);

  function GetRndDisTurbStrs(Content : String; Strs : TStringList; Cn : boolean) : String ;
  function GenRndDisturb(Str : String; Cn : boolean): String;
  function AnaUserLine(Line,User,RpStr : String) : String ;
  function DisTurbContent(Content : String):String;
  function FormatStrNum(Num : Integer; Len : Byte): String;
  procedure GetColumnFromLstV(LstV : TListView; Sl : TStringList; idx : Byte);
  function LStrDiv(Str,Spl : string): string;
  function RStrDiv(Str,Spl : string): string;
  function ExStrSeg(Str,Spl : string; Idx : Integer): string;
  function GenRndUSR(Prefix,Tail : string; Len : Byte): string;
  function BoolToStr(b : boolean): string;
  function IsNum(s : string): boolean;
  function GetLinkTextByURL(HTML,URL : string):string;

  procedure AddLstBPro(ListBox : TListBox; str : String; Insert : boolean; MaxLine : Integer);
  procedure AddLstVitemPro(LstV : TListView; Subs : TStringList; Data: Pointer=nil);
  procedure ChkLstV(LstV : TListView; Chk : Boolean);
  procedure RfhLstV(LstV : TListView);

implementation

uses
  Define;

procedure RemoveEnter(var s : string);
var
  i : integer;
  DelOne : boolean;
begin
  Repeat
    DelOne := false;
    for i:=1 to length(s)-1 do
    if (Ord(s[i]) = $0d) and (Ord(s[i+1]) = $0a) then
    begin
      Delete(s,i,2);
      DelOne := true;
      break;
    end;
  Until not DelOne;
end;

procedure GetIniSecStrings(Ini : TiniFile; Sec : String; Strs : TStrings);
var
  i,j : Integer;
  Keys : TStringList;
  Value : String;
begin
  Strs.Clear;
  Keys := TStringList.Create;
  Ini.ReadSection(Sec,Keys);
  for i:=0 to Keys.Count-1 do
  begin
    Value := Ini.ReadString(Sec,Keys[i],'');
    Strs.Add(Value);
  end;
  Keys.Free;
end;

function MsgBox(Info: String; Style: integer): integer;
begin
  with Application do
  begin
    NormalizeTopMosts;
    Result := MessageBox(PChar(Info), '信息提示',Style);
    RestoreTopMosts;
  end;
end;

function GetValByName(S, Sub: string) : string;
var
  EleS,EleE,iPos: Integer;
  ELeStr,ValSt: String;
  St,Ct : Integer;
  function FindEleRange(str: string ; front : boolean; posi : integer): Integer;
  var
    i: integer;
  begin
    if Front then
    begin
      for i:=posi-1 downto 1 do
      if Str[i]='<' then
      begin
        Result := i;
        break;
      end;
    end else begin
      for i := posi+1 to length(Str) do
      if Str[i]='>' then
      begin
        Result := i;
        break;
      end;
    end;
  end;
  function FindEnd (str : string; posi : integer) : Integer;
  var
    i: integer;
  begin
    for i:=posi to length(str) do
    begin
      if (str[i] ='"') or (str[i] ='''') or (str[i] =' ') then
      begin
        result := i-1;
        break;
      end;
    end;
  end;
begin
  iPos := Pos('name="'+lowercase(Sub)+'"',lowercase(S));
  if iPos = 0 then iPos := Pos('name='+lowercase(Sub),lowercase(S));
  if iPos = 0 then iPos := Pos('name='''+lowercase(Sub)+'''',lowercase(S));
  if iPos = 0 then exit;
  EleS := FindEleRange(S,TRUE,iPos);
  EleE := FindEleRange(S,FALSE,iPos);
  EleStr := Copy(S,EleS,EleE-EleS+1);
  ValSt := 'value="';
  iPos := Pos(ValSt,EleStr);
  if iPos = 0 then
  begin
    ValSt := 'value=''';
    iPos := Pos(ValSt,EleStr);
  end;
  if iPos = 0 then
  begin
    ValSt := 'value=';
    iPos := Pos(ValSt,EleStr);
  end;
  St := iPos+length(ValSt);
  Ct := FindEnd(EleStr,St)-St+1;
  Result := Copy(EleStr,St,Ct);
end;


function ExtractHtmlTagValues(const HtmlText: string; TagName, AttribName: string; var Values: TStringList): integer;

function FindFirstCharAfterSpace(const Line: string; StartPos: integer): Integer;
var i: integer; 
begin 
  Result := -1; 
  for i := StartPos to Length(Line) do 
  begin 
    if (Line[i] <> ' ') then 
    begin 
      Result := i; 
      exit; 
    end; 
  end; 
end; 

function FindFirstSpaceAfterChars(const Line: string; StartPos: integer): Integer; 
begin 
  Result := PosEx(' ', Line, StartPos);
end; 

function FindFirstSpaceBeforeChars(const Line: string; StartPos: integer): Integer;
var i: integer; 
begin 
  Result := 1; 
  for i := StartPos downto 1 do 
  begin 
    if (Line[i] = ' ') then 
    begin 
      Result := i; 
      exit; 
    end; 
  end; 
end; 

var InnerTag: string; 
    LastPos, LastInnerPos: Integer; 
    SPos, LPos, RPos: Integer; 
    AttribValue: string; 
    ClosingChar: char; 
    TempAttribName: string; 
begin 
  Result := 0;
  LastPos := 1;
  while (true) do
  begin
    // find outer tags '<' & '>'
    LPos := PosEx('<', HtmlText, LastPos);
    if (LPos <= 0) then break;
    RPos := PosEx('>', HtmlText, LPos+1);
    if (RPos <= 0) then
      LastPos := LPos + 1
    else
      LastPos := RPos + 1; 

    // get inner tag 
    InnerTag := Copy(HtmlText, LPos+1, RPos-LPos-1); 
    InnerTag := Trim(InnerTag); // remove spaces 
    if (Length(InnerTag) < Length(TagName)) then continue; 

    // check tag name 
    if (SameText(Copy(InnerTag, 1, Length(TagName)), TagName)) then 
    begin 
      // found tag 
      AttribValue := ''; 
      LastInnerPos := Length(TagName)+1; 
      while (LastInnerPos < Length(InnerTag)) do 
      begin 
        // find first '=' after LastInnerPos 
        RPos := PosEx('=', InnerTag, LastInnerPos); 
        if (RPos <= 0) then break; 

        // this way you can check for multiple attrib names and not a specific attrib 
        SPos := FindFirstSpaceBeforeChars(InnerTag, RPos); 
        TempAttribName := Trim(Copy(InnerTag, SPos, RPos-SPos)); 
        if (true) then 
        begin 
          // found correct tag 
          LPos := FindFirstCharAfterSpace(InnerTag, RPos+1); 
          if (LPos <= 0) then 
          begin 
            LastInnerPos := RPos + 1; 
            continue; 
          end; 
          LPos := FindFirstCharAfterSpace(InnerTag, LPos); // get to first char after '=' 
          if (LPos <= 0) then continue; 
          if ((InnerTag[LPos] <> '"') and (InnerTag[LPos] <> '''')) then 
          begin 
            // AttribValue is not between '"' or ''' so get it 
            RPos := FindFirstSpaceAfterChars(InnerTag, LPos+1); 
            if (RPos <= 0) then 
              AttribValue := Copy(InnerTag, LPos, Length(InnerTag)-LPos+1) 
            else 
              AttribValue := Copy(InnerTag, LPos, RPos-LPos+1); 
          end 
          else 
          begin 
            // get url between '"' or ''' 
            ClosingChar := InnerTag[LPos]; 
            RPos := PosEx(ClosingChar, InnerTag, LPos+1); 
            if (RPos <= 0) then 
              AttribValue := Copy(InnerTag, LPos+1, Length(InnerTag)-LPos-1) 
            else 
              AttribValue := Copy(InnerTag, LPos+1, RPos-LPos-1) 
          end; 

          if (SameText(TempAttribName, AttribName)) and (AttribValue <> '') then 
          begin 
            Values.Add(AttribValue);
            inc(Result); 
          end; 
        end; 

        if (RPos <= 0) then 
          LastInnerPos := Length(InnerTag) 
        else 
          LastInnerPos := RPos+1; 
      end; 
    end; 
  end; 
end;

function URLEncode(const msg : String) : String;
var
    I : Integer;
begin
    Result := '';
    for I := 1 to Length(msg) do begin
        if msg[I] = ' ' then
            Result := Result + '+'
        else if msg[I] in ['a'..'z', 'A'..'Z', '0'..'9'] then
            Result := Result + msg[I]
        else
            Result := Result + '%' + IntToHex(ord(msg[I]), 2);
    end;
end;


function UrlDecode(const EncodedStr: String): String;
var
  I: Integer;
begin
  Result := '';
  if Length(EncodedStr) > 0 then
  begin
    I := 1;
    while I <= Length(EncodedStr) do
    begin
      if EncodedStr[I] = '%' then
        begin
          Result := Result + Chr(HexToInt(EncodedStr[I+1]
                                       + EncodedStr[I+2]));
          I := Succ(Succ(I));
        end
      else if EncodedStr[I] = '+' then
        Result := Result + ' '
      else
        Result := Result + EncodedStr[I];

      I := Succ(I);
    end;
  end;
end;

Function HexToInt(Hex :String):Int64;
Var Sum : Int64;
    I,L : Integer;
Begin
L := Length(Hex);
Sum := 0;
For I := 1 to L Do
   Begin
   Sum := Sum * 16;
   If ( Ord(Hex[I]) >= Ord('0')) and (Ord(Hex[I]) <= Ord('9')) then
      Sum := Sum + Ord(Hex[I]) - Ord('0')
   else If ( Ord(Hex[I]) >= Ord('A') ) and (Ord(Hex[I]) <= Ord('F')) then
      Sum := Sum + Ord(Hex[I]) - Ord('A') + 10
   else If ( Ord(Hex[I]) >= Ord('a') ) and ( Ord(Hex[I]) <= Ord('f')) then
      Sum := Sum + Ord(Hex[I]) - Ord('a') + 10
   else
      Begin
      Sum := -1;
      break;
      End;
   End;
Result := Sum;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内国产精品久久| 国产一区二区看久久| 久久久久亚洲蜜桃| 91久久精品一区二区三区| 久久99精品久久只有精品| 亚洲在线中文字幕| 国产精品久久久久影院亚瑟| 日韩欧美一区二区三区在线| 91麻豆国产福利在线观看| 国产成人午夜电影网| 视频一区国产视频| 亚洲人成网站在线| 国产亚洲自拍一区| 精品噜噜噜噜久久久久久久久试看| 欧美性猛交xxxxxx富婆| 成人午夜大片免费观看| 国产资源精品在线观看| 日韩黄色免费网站| 污片在线观看一区二区| 亚洲精品视频在线| 中文字幕一区二区视频| 久久久不卡网国产精品一区| 日韩视频一区二区三区在线播放| 欧美日韩一级片在线观看| 色妞www精品视频| av一区二区三区黑人| 国产精品一级在线| 国产一区二区久久| 国产在线不卡一区| 韩国中文字幕2020精品| 麻豆精品久久久| 男男视频亚洲欧美| 久久精品国产在热久久| 久久成人久久鬼色| 久久国产日韩欧美精品| 久久国产综合精品| 国产在线播放一区二区三区| 国产在线国偷精品免费看| 国精品**一区二区三区在线蜜桃| 紧缚捆绑精品一区二区| 久久99精品久久只有精品| 美女任你摸久久 | 国产日本欧美一区二区| 久久亚洲影视婷婷| 中文av字幕一区| 亚洲人成网站精品片在线观看| 亚洲乱码国产乱码精品精98午夜| 亚洲人吸女人奶水| 亚洲成av人片一区二区梦乃| 日日摸夜夜添夜夜添精品视频| 日韩av电影天堂| 欧美一区二区网站| 欧美变态tickling挠脚心| 91精品国产一区二区人妖| 欧美一区二区私人影院日本| 日韩一区二区在线观看| 精品国产网站在线观看| 国产精品久久一卡二卡| 中文字幕一区二区三区四区| 一区二区三区中文字幕在线观看| 亚洲444eee在线观看| 国内精品久久久久影院一蜜桃| 成人免费看的视频| 欧美日韩一区二区三区不卡| 日韩一级完整毛片| 久久久777精品电影网影网 | 欧美视频一区在线观看| 91精品欧美一区二区三区综合在| 日韩免费视频一区| 国产精品久久久久久久第一福利 | 欧美男人的天堂一二区| 日韩一区二区三区av| 国产片一区二区三区| 亚洲女人小视频在线观看| 午夜精品成人在线| 成人永久aaa| 欧美电影在线免费观看| 福利电影一区二区| 99久久婷婷国产综合精品| 欧美在线观看禁18| 日韩视频免费观看高清完整版在线观看| ww久久中文字幕| 夜夜嗨av一区二区三区中文字幕| 久久99精品一区二区三区三区| 99re亚洲国产精品| 日韩欧美中文字幕制服| 亚洲色图都市小说| 国内精品久久久久影院色| 欧美在线观看一区| 中文字幕av一区二区三区| 视频一区在线视频| 99久久精品国产一区二区三区 | 国产成人精品亚洲777人妖| 欧美日韩一区二区三区四区五区 | 国产精品入口麻豆九色| 亚洲成人综合视频| 波多野结衣精品在线| 欧美成人精品3d动漫h| 亚洲自拍欧美精品| 麻豆精品一区二区综合av| 91精品国产麻豆国产自产在线 | 99久久亚洲一区二区三区青草| 欧美精品三级日韩久久| 国产精品久久午夜夜伦鲁鲁| 蜜桃久久久久久久| 欧美日韩三级一区| 亚洲视频一二区| 国产精品中文欧美| 欧美一卡2卡三卡4卡5免费| 亚洲乱码一区二区三区在线观看| 国产一区二区三区高清播放| 欧美美女直播网站| 亚洲乱码国产乱码精品精小说| 国产69精品久久99不卡| 精品国产亚洲一区二区三区在线观看 | 91成人免费网站| 国产精品乱码人人做人人爱| 国产精品456露脸| 亚洲成在人线免费| 日本久久一区二区三区| 欧美日韩一区不卡| 成人欧美一区二区三区1314| 精品综合免费视频观看| 欧美日韩色一区| 一区二区三国产精华液| 成人黄色电影在线| 国产亚洲一二三区| 国产精品99久久久久久有的能看| 日韩一区二区麻豆国产| 亚洲超碰97人人做人人爱| 在线一区二区观看| 亚洲综合色婷婷| 毛片av一区二区三区| 国产成人午夜电影网| 午夜精品影院在线观看| 亚洲一区二区精品3399| 久久精品免费观看| 亚洲影视在线观看| 欧美图区在线视频| 91高清视频在线| 一区二区三区久久久| 久久精品一区二区三区不卡| av色综合久久天堂av综合| 奇米亚洲午夜久久精品| 亚洲妇熟xx妇色黄| 国产精品网站在线观看| 亚洲国产精品av| 欧美日韩日日骚| 欧美视频中文字幕| 在线观看国产91| 欧美在线视频全部完| 99精品欧美一区二区三区综合在线| 久久精品国产免费看久久精品| 午夜伦欧美伦电影理论片| 依依成人精品视频| 亚洲一区二区精品视频| 亚洲综合一二三区| 亚洲第一成人在线| 天天综合日日夜夜精品| 蜜臀va亚洲va欧美va天堂| 免费成人在线网站| 精品无人码麻豆乱码1区2区| 久久99精品久久久久久国产越南| 日韩精品五月天| 国产一级精品在线| 成人免费毛片片v| 欧美影视一区二区三区| 欧美午夜精品久久久久久孕妇| 欧美日韩国产中文| 欧美mv日韩mv亚洲| 欧美激情一区二区三区蜜桃视频 | 国产在线不卡一卡二卡三卡四卡| 久久爱www久久做| 成人综合激情网| 欧美午夜一区二区三区免费大片| 日韩一区二区在线观看视频| 精品国产成人系列| 中文字幕一区二区在线播放| 亚洲综合成人网| 精品一区二区三区在线观看国产| 成人激情免费电影网址| 欧美日韩一卡二卡三卡| 精品91自产拍在线观看一区| 国产精品对白交换视频 | 精品日产卡一卡二卡麻豆| 国产日韩av一区二区| 亚洲在线观看免费| 狠狠久久亚洲欧美| 欧美色精品在线视频| 久久婷婷一区二区三区| 亚洲最大成人综合| 国产毛片一区二区| 欧美日韩一级视频| 中文字幕欧美国产| 日本少妇一区二区| 色天使色偷偷av一区二区| 精品日本一线二线三线不卡| 依依成人精品视频| 国产成人激情av| 日韩欧美黄色影院|