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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hyperstr.pas

?? String hanlding library. Functions for crypto, token etc
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
@Exit:

    Pop   EBP              //restore the world
    Pop   EDI
    Pop   ESI
    Pop   EBX

    Mov   Result,EAX       //output length
  end;


function DeleteT(var Source:AnsiString;const Table:AnsiString):Integer;

  {Convert any Table char. into right justified space which can be
   deleted if necessary using RTrim or SetLength.

   Returns: Valid char. count (length minus chars. converted to spaces); zero on error.}

begin
  Result:=DeleteI(Source,Table,1);
end;


function DeleteTQ(var Source:AnsiString;const Table:AnsiString):Integer;

  {Convert Table chars. into right justified spaces which can be deleted if
   necessary using RTrim or SetLength. Characters inside dbl quotes are ignored.

   Returns: Valid char. count; length minus chars. converted to spaces.}

  asm

    Push  EBX              //save the important stuff
    Push  ESI
    Push  EDI
    Push  EBP

    Or    EAX,EAX
    Jz    @Exit
    Push  EAX
    Push  EDX
    Push  ECX
    Call  UniqueString
    Pop   ECX
    Pop   EDX
    Pop   EAX
    Mov   EAX,[EAX]
    Mov   ECX,1
    Call  _TableScanIni
    Jecxz @Abort
    Push  ECX              //save length
    Sub   ECX,EAX          //adjust for Start
    Mov   EBX,ESI          //use EBX as write pointer
    Xor   EAX,EAX
    Xor   EDX,EDX

@Next:
    Lodsb                  //get the byte
    Mov   DL,AL            //save it in DL
    Mov   DH,DL            //and in DH
    Cmp   AL,34            //dbl quote ?
    Jnz   @Skip2           //no, then skip
    Xor   EDX,$40000000    //set flag
//    Jmp   @Skip2
//@Skip1:
//    Cmp   AL,39            //single quote ?
//    Jnz   @Skip2           //no, then skip
//    Xor   EDX,$20000000    //set flag
@Skip2:
    Test  EDX,$60000000    //quotes clear ?
    Jnz   @Write           //no, then write it out
    And   DL,31            //bit index
    Shr   EAX,5            //dbl-word index
    Shl   EAX,2
    Mov   EBP,[EDI+EAX]    //get the dbl-word
    Bt    EBP,EDX
//*    Bt    EBP,DL           //test the bit
    Jc    @Skip            //skip write if in Table
@Write:
    Mov   [EBX],DH
    Inc   EBX
@Skip:
    Dec   ECX
    Jnz   @Next
@Done:
    Pop   EAX              //original source length
    Mov   DH,32            //prepare to space fill
@L3:
    Cmp   EBX,ESI          //read = write ?
    Jz    @Exit            //yes, then we're done
    Mov   [EBX],DH         //no, then space fill
    Inc   EBX
    Dec   EAX              //adjust output length
    Jmp   @L3              //and do it again

@Abort:
    Xor   EAX,EAX
@Exit:

    Pop   EBP              //restore the world
    Pop   EDI
    Pop   ESI
    Pop   EBX

    Mov   Result,EAX       //output length
  end;


function DeleteNT(var Source:AnsiString;const Table:AnsiString):Integer;

  {Convert any non-Table character into right justified space
   which can be deleted if necessary using RTrim or SetLength.

   Returns: Valid char. count (length minus chars. converted to spaces); zero on error.}

begin
  Result:=DeleteNI(Source,Table,1);
end;


function DeleteNI(var Source:AnsiString;const Table:AnsiString; const Index:Integer):Integer;

  {Convert any non-Table character from Index forward into right justified space
   which can be deleted if necessary using RTrim or SetLength.

   Returns: Valid char. count; length minus chars. converted to spaces.

   Example: One application might be to filter keystroke errors from user
            input after the fact.

            Source:='$123X4.56  ';
            I:=DeleteNT(Source,'$+-0123456789.');

            On return, I=8, Source='$1234.56   '

   Same as MakeTable() but faster for longer strings (30+ characters).}

  asm

    Push  EBX              //save the important stuff
    Push  ESI
    Push  EDI
    Push  EBP

    Or    EAX,EAX
    Jz    @Exit
    Push  EAX
    Push  EDX
    Push  ECX
    Call  UniqueString
    Pop   ECX
    Pop   EDX
    Pop   EAX
    Mov   EAX,[EAX]
    Call  _TableScanIni
    Jecxz @Abort
    Push  ECX              //save length
    Sub   ECX,EAX          //adjust for Start
    Mov   EBX,ESI          //use EBX as write pointer
    Xor   EAX,EAX

@Next:
    Lodsb                  //get the byte
    Mov   DL,AL            //save it in DL
    Mov   DH,DL            //and in DH
    And   DL,31            //bit index
    Shr   EAX,5            //dbl-word index
    Shl   EAX,2
    Mov   EBP,[EDI+EAX]    //get the dbl-word
    Bt    EBP,EDX
//*    Bt    EBP,DL           //test the bit
    Jnc   @Skip            //skip write if not in Table
    Mov   [EBX],DH
    Inc   EBX
@Skip:
    Dec   ECX
    Jnz   @Next

    Pop   EAX              //original source length
    Mov   DH,32            //prepare to space fill
@L3:
    Cmp   EBX,ESI          //read = write ?
    Jz    @Exit            //yes, then we're done
    Mov   [EBX],DH         //no, then space fill
    Inc   EBX
    Dec   EAX              //adjust output length
    Jmp   @L3              //and do it again

@Abort:
    Xor   EAX,EAX
@Exit:

    Pop   EBP              //restore the world
    Pop   EDI
    Pop   ESI
    Pop   EBX

    Mov   Result,EAX       //output length
  end;


function  IsFloat(const Source:AnsiString):Boolean;

  {Determine if a string contains characters,0-9,space,E,+,-,DecimalSeparator}
asm
  Push  ESI             //save the important stuff

  Mov   EAX,Source
  Or    EAX,EAX
  Jz    @Done           //abort if nil address
  Mov   ESI,EAX         //put address into write register
  Mov   ECX,[EAX-4]     //put length into count register
  Xor   EAX,EAX
  Jecxz @Done           //bail out if zero length
  Cld
@Start:
  Lodsb                 //get a byte
  Cmp   AL,DecSep
  Jz    @OK             //Decimal is OK
  Cmp   AL,32
  Jz    @OK             //space is OK
  Cmp   AL,43
  Jz    @OK             //+ is OK
  Cmp   AL,45
  Jz    @OK             //- is OK
  Cmp   AL,69
  Jz    @OK             //'E' is OK
  Cmp   AL,101
  Jz    @OK             //'e' is OK
  Cmp   AL,48
  Jb    @NG             //less than 0 is NG
  Cmp   AL,57
  Ja    @NG             //greater than 9 is NG
@OK:
  Dec   ECX
  Jnz   @Start
  Mov   EAX,True        //if we make it here, we've got a good one
  Jmp   @Done
@NG:
  Xor   EAX,EAX
@Done:
  Pop   ESI             //restore the important stuff
  Mov   Result,AL
end;                    //and we're outta here


function  IsDateTime(const Source:AnsiString):Boolean;

  {Determine if a string contains only char. 0-9,space,-,DateSeperator,TimeSeparator}
asm
  Push  ESI             //save the important stuff

  Mov   EAX,Source
  Or    EAX,EAX
  Jz    @Done           //abort if nil address
  Mov   ESI,EAX         //put address into write register
  Mov   ECX,[EAX-4]     //put length into count register
  Xor   EAX,EAX
  Jecxz @Done           //bail out if zero length
  Cld
@Start:
  Lodsb                 //get a byte
  Cmp   AL,32
  Jz    @OK             //space is OK
  Cmp   AL,TimeSep
  Jz    @OK             //Time is OK
  Cmp   AL,DateSep
  Jz    @OK             //Date is OK
  Cmp   AL,45
  Jz    @OK             //- is OK
  Cmp   AL,65
  Jz    @OK
  Cmp   AL,77
  Jz    @OK
  Cmp   AL,80
  Jz    @OK
  Cmp   AL,48
  Jb    @NG             //less than 0 is NG
  Cmp   AL,57
  Ja    @NG             //greater than 9 is NG
@OK:
  Dec   ECX
  Jnz   @Start
  Mov   EAX,True          //if we make it here, we've got a good one
  Jmp   @Done
@NG:
  Xor   EAX,EAX
@Done:
  Pop   ESI             //restore the important stuff
  Mov   Result,AL
end;                    //and we're outta here


function  IsTable(const Source,Table:AnsiString):Boolean;

  {Determine if string is composed solely of table characters.}

begin
  Result:=CountT(Source,Table,1)=Length(Source);
end;


function  IsField(const Source,Table:AnsiString;const Index,Cnt:Integer):Boolean;

  {Determine if a fielded portion of a string is composed solely of table characters.
   Field begins at Index position and is Cnt characters in length.}

begin
  Result:=CountM(Source,Table,Index)>=Cnt;
end;


function  IsSet(const Source:AnsiString;Multiple,Single:TCharSet):Boolean;
  {Determine if string is composed solely of characters from given sets. Only a
   single instance of characters in Single set is allowed}
var
  S:TCharSet;
  I:Integer;
begin
  Result:=False;
  I:=Length(Source);
  if I=0 then Exit;
  S:=Single;
  repeat
    if not (Source[I] in Multiple) then begin
      if not (Source[I] in S) then break else Exclude(S,Source[I]);
    end;
    Dec(I);
  until I=0;
  Result:=I=0;
end;


function  _IsTMask(const Source:AnsiString):Boolean;

  {Determine if a string contains only table characters. Table address = EDX}

  asm
    Push  ESI             //save the important stuff
    Push  EDI

    Or    EAX,EAX
    Jz    @Done           //abort if nil address
    Mov   ESI,EAX         //put address into write register
    Mov   ECX,[EAX-4]     //put length into count register
    Xor   EAX,EAX
    Jecxz @Done           //bail out if zero length
    Cld
    Mov   EDI,EDX      //initialize scan array
    Xor   EDX,EDX
@Start:
    Lodsb                 //get a byte

    Mov   EDX,EAX
    And   EDX,7           //bit index
    Shr   EAX,3           //byte index
    Mov   AL,[EDI+EAX]    //get byte
    Bt    EAX,EDX         //test the bit
    Jnc   @NG             //abort if NG

    Dec   ECX
    Jnz   @Start
    Mov   EAX,True          //if we make it here, we've got a good one
    Jmp   @Done
@NG:
    Xor   EAX,EAX
@Done:
    Pop   EDI
    Pop   ESI             //restore the important stuff
  end;                    //and we're outta here


function  IsNum(const Source:AnsiString):Boolean;

  {Determine if a string contains only digits (0-9) and spaces.}

  asm
    Lea   EDX,NumT      //initialize scan array
    Jmp   _ISTMask
  end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品萝li| 91影视在线播放| 色婷婷综合久久久久中文| 欧美一区二区高清| 国产精品理伦片| 韩国三级在线一区| 欧美日韩的一区二区| 最新不卡av在线| 国产一区二区三区在线观看精品 | 色综合久久天天综合网| 久久精品亚洲国产奇米99| 午夜精品久久久久久久久久| 波多野结衣中文字幕一区二区三区 | 亚洲一区二区在线观看视频| 国产精品一品视频| 日韩午夜在线影院| 一区二区三区四区不卡视频 | 国产精品久久久久久久裸模| 美女一区二区久久| 69堂精品视频| 午夜精品免费在线| 91成人在线精品| 亚洲狼人国产精品| 欧美系列日韩一区| 一区二区三区四区蜜桃| 粉嫩欧美一区二区三区高清影视| 日韩三级av在线播放| 视频在线在亚洲| 欧美日韩一区二区三区高清| 玉米视频成人免费看| av一区二区不卡| 国产精品高清亚洲| 99视频一区二区三区| 国产精品国产自产拍高清av王其 | 国产精品素人一区二区| 激情六月婷婷久久| 久久婷婷久久一区二区三区| 日韩一区精品字幕| 日韩免费观看高清完整版在线观看| 日韩电影一二三区| 精品国产区一区| 成人免费黄色在线| 国产精品久久久久国产精品日日 | 欧美日韩不卡一区| 日韩电影免费一区| 久久亚洲捆绑美女| 99re成人精品视频| 亚洲成a人片在线观看中文| 欧美疯狂做受xxxx富婆| 国内精品伊人久久久久av一坑| 国产欧美精品日韩区二区麻豆天美| 成人99免费视频| 亚洲国产aⅴ天堂久久| 日韩三级伦理片妻子的秘密按摩| 国产福利91精品| 亚洲男人的天堂av| 日韩欧美亚洲国产另类 | 国产精品久久久久9999吃药| 色综合久久天天综合网| 人人狠狠综合久久亚洲| 国产校园另类小说区| 91激情在线视频| 久久国产麻豆精品| 成人免费在线播放视频| 在线成人午夜影院| 国产成人亚洲综合色影视| 亚洲夂夂婷婷色拍ww47| 久久久久久久综合日本| 欧美午夜片在线看| 国产成人精品免费一区二区| 亚洲第一激情av| 国产精品网曝门| 欧美成va人片在线观看| 一本到三区不卡视频| 国内精品伊人久久久久av影院| 亚洲久草在线视频| 久久久久久97三级| 欧美日韩高清不卡| 91片黄在线观看| 国产成人亚洲综合a∨婷婷| 天天色天天爱天天射综合| 国产精品毛片大码女人| 欧美大尺度电影在线| 在线观看欧美黄色| 99精品1区2区| 国产成人av在线影院| 日韩va亚洲va欧美va久久| 国产精品伦理一区二区| 精品国产免费人成在线观看| 欧美巨大另类极品videosbest | 中文av一区二区| 欧美一级欧美一级在线播放| 91碰在线视频| 成人高清视频在线| 国产精品一区2区| 久久国产精品色婷婷| 石原莉奈在线亚洲二区| 亚洲资源中文字幕| 一区二区三区国产| 亚洲天堂精品视频| 亚洲欧美视频在线观看视频| 久久久不卡影院| 国产日韩欧美综合在线| 2019国产精品| 精品粉嫩aⅴ一区二区三区四区| 久久夜色精品一区| 欧美日韩一级二级| 欧美久久久久久久久中文字幕| 色婷婷av久久久久久久| 在线观看国产精品网站| 色综合夜色一区| 99久久精品国产毛片| 成人一区在线观看| 成人国产精品免费观看动漫| 成人av资源在线| 色婷婷一区二区| 在线观看免费成人| 制服视频三区第一页精品| 7878成人国产在线观看| 欧美一级欧美一级在线播放| 91精品福利在线一区二区三区 | 免费观看91视频大全| 免费成人你懂的| 国产综合久久久久久久久久久久| 经典三级视频一区| 国产成人av网站| 色哟哟国产精品免费观看| 91福利在线观看| 欧美一区日本一区韩国一区| 日韩精品专区在线| 国产日韩欧美在线一区| 亚洲九九爱视频| 日韩精品电影在线| 国产一区二区剧情av在线| 不卡一二三区首页| 欧美影院一区二区三区| 欧美不卡一二三| 欧美极品aⅴ影院| 亚洲综合一区二区三区| 日本91福利区| 成人高清视频在线观看| 欧美日韩视频不卡| 国产午夜精品福利| 一区二区三区四区不卡在线| 看片的网站亚洲| 91视频免费观看| 日韩欧美亚洲一区二区| 亚洲欧洲三级电影| 日本亚洲电影天堂| 99国产精品视频免费观看| 4438亚洲最大| 国产精品国产成人国产三级| 日韩成人一级大片| www.av精品| 精品日韩一区二区三区| 亚洲欧美国产三级| 国精产品一区一区三区mba视频 | aaa欧美大片| 欧美一区二区性放荡片| 中文字幕乱码日本亚洲一区二区| 亚洲成人一区在线| 国产在线日韩欧美| 欧美日韩在线不卡| 日韩一区欧美小说| 精品一区二区三区的国产在线播放 | 日韩一区欧美小说| 韩国理伦片一区二区三区在线播放| 色香蕉成人二区免费| 久久久久亚洲蜜桃| 日韩av不卡在线观看| 欧美日韩精品专区| 一区精品在线播放| 风流少妇一区二区| 久久综合九色综合97_久久久| 亚洲福利一区二区| 91福利视频网站| 国产精品久久精品日日| 精品在线观看免费| 制服丝袜一区二区三区| 一卡二卡欧美日韩| av午夜一区麻豆| 日本一区二区三区四区在线视频| 免费久久99精品国产| 欧美日韩免费观看一区二区三区| 中文av字幕一区| 成人免费视频视频在线观看免费 | 在线影视一区二区三区| 国产精品五月天| 成人激情校园春色| 久久中文字幕电影| 久久精品999| 久久综合久久鬼色| 国产精品91xxx| 中文字幕不卡在线观看| 成人天堂资源www在线| 国产精品国产三级国产三级人妇 | 欧美成人高清电影在线| 午夜精品影院在线观看| 欧美色偷偷大香| 天堂久久一区二区三区|