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

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

?? hutil32.pas

?? 傳奇客戶端
?? PAS
?? 第 1 頁 / 共 4 頁
字號:

      Result := Copy (Source, SrcCount+1, SrcLen-SrcCount); {result is remain string}
	finally
   	//LeaveCriticalSection (CSUtilLock);
	end;
end;


function ArrestStringEx (Source, SearchAfter, ArrestBefore: string; var ArrestStr: string): string;
var
   BufCount, SrcCount, SrcLen: integer;
   GoodData, Fin: Boolean;
   i, n: integer;
begin
   ArrestStr := ''; {result string}
   if Source = '' then begin
      Result := '';
      exit;
   end;

   try
      SrcLen := Length (Source);
      GoodData := FALSE;
      if SrcLen >= 2 then
         if Source[1] = SearchAfter then begin
            Source := Copy (Source, 2, SrcLen-1);
            SrcLen := Length (Source);
            GoodData := TRUE;
         end else begin
            n := Pos (SearchAfter, Source);
            if n > 0 then begin
               Source := Copy (Source, n+1, SrcLen-(n));
               SrcLen := Length(Source);
               GoodData := TRUE;
            end;
         end;
      Fin := FALSE;
      if GoodData then begin
         n := Pos (ArrestBefore, Source);
         if n > 0 then begin
            ArrestStr := Copy (Source, 1, n-1);
            Result := Copy (Source, n+1, SrcLen-n);
         end else begin
            Result := SearchAfter + Source;
         end;
      end else begin
         for i:=1 to SrcLen do begin
            if Source[i] = SearchAfter then begin
               Result := Copy (Source, i, SrcLen-i+1);
               break;
            end;
         end;
      end;
   except
      ArrestStr := '';
      Result := '';
   end;
end;

function SkipStr (Src: string; const Skips: array of char): string;
var
	I, Len, C: integer;
   NowSkip: Boolean;
begin
	Len := Length (Src);
//   Count := sizeof(Skips) div sizeof (Char);

   for I:=1 to Len do begin
   	NowSkip := FALSE;
     	for C:=Low(Skips) to High(Skips) do
      	if Src[I] = Skips[C] then begin
         	NowSkip := TRUE;
            break;
         end;
      if not NowSkip then break;
   end;

   Result := Copy (Src, I, Len-I+1);

end;


function GetStrToCoords (Str: string): TRect;
var
	Temp: string;
begin

   Str := GetValidStr3 (Str, Temp, [',', ' ']); Result.Left   := Str_ToInt (Temp, 0);
   Str := GetValidStr3 (Str, Temp, [',', ' ']); Result.Top    := Str_ToInt (Temp, 0);
   Str := GetValidStr3 (Str, Temp, [',', ' ']); Result.Right  := Str_ToInt (Temp, 0);
          GetValidStr3 (Str, Temp, [',', ' ']); Result.Bottom := Str_ToInt (Temp, 0);

end;

function CombineDirFile (SrcDir, TargName: string): string;
begin
	if (SrcDir = '') or (TargName = '') then begin
   	Result := SrcDir + TargName;
      exit;
   end;
   if SrcDir [Length(SrcDir)] = '\' then
   	Result := SrcDir + TargName
   else Result := SrcDir + '\' + TargName;
end;

function  CompareLStr (src, targ: string; compn: integer): Boolean;
var
   i: integer;
begin
   Result := FALSE;
   if compn <= 0 then exit;
   if Length(src) < compn then exit;
   if Length(targ) < compn then exit;
   Result := TRUE;
   for i:=1 to compn do
      if UpCase(src[i]) <> UpCase(targ[i]) then begin
         Result := FALSE;
         break;
      end;
end;

function  CompareBuffer (p1, p2: PByte; len: integer): Boolean;
var
   i: integer;
begin
   Result := TRUE;
   for i:=0 to len-1 do
      if PByte(integer(p1)+i)^ <> PByte(integer(p2)+i)^ then begin
         Result := FALSE;
         break;
      end;
end;

function  CompareBackLStr (src, targ: string; compn: integer): Boolean;
var
   i, slen, tlen: integer;
begin
   Result := FALSE;
   if compn <= 0 then exit;
   if Length(src) < compn then exit;
   if Length(targ) < compn then exit;
   slen := Length(src);
   tlen := Length(targ);
   Result := TRUE;
   for i:=0 to compn-1 do
      if UpCase(src[slen-i]) <> UpCase(targ[tlen-i]) then begin
         Result := FALSE;
         break;
      end;
end;


function IsEnglish (Ch: Char): Boolean;
begin
	Result := FALSE;
	if ((Ch >= 'A') and (Ch <= 'Z')) or ((Ch >= 'a') and (Ch <= 'z')) then
   	Result := TRUE;
end;

function IsEngNumeric (Ch: Char): Boolean;
begin
	Result := FALSE;
	if IsEnglish (Ch) or ((Ch >= '0') and (Ch <= '9')) then
    	Result := TRUE;
end;

function IsEnglishStr (sEngStr:String): Boolean;
var
  i:Integer;
begin
	Result := FALSE;

  for i:= 1 to length(sEngStr) do begin
    Result := IsEnglish(sEngStr[i]);
    if Result then break;
  end;
end;

function  IsFloatNumeric (str: string): Boolean;
begin
   if Trim(str) = '' then begin
   	Result := FALSE;
      exit;
   end;
   try
      StrToFloat (str);
      Result := TRUE;
   except
      Result := FALSE;
   end;
end;

procedure PCharSet (P: PChar; n: integer; ch: char);
var
	I: integer;
begin
	for I:=0 to n-1 do
   	(P + I)^ := ch;
end;

function ReplaceChar (src: string; srcchr, repchr: char): string;
var
	i, len: integer;
begin
	if src <> '' then begin
      len := Length (src);
      for i:=0 to len-1 do
      	if src[i] = srcchr then src[i] := repchr;
   end;
   Result := src;
end;


function IsUniformStr (src: string; ch: char): Boolean;
var
	i, len: integer;
begin
   Result := TRUE;
	if src <> '' then begin
      len := Length (src);
      for i:=0 to len-1 do
      	if src[i] = ch then begin
         	Result := FALSE;
            break;
         end;
   end;
end;


function CreateMask (Src: PChar; TargPos: Integer): string;
	function IsNumber (chr: Char): Boolean;
   begin
    	if (Chr >= '0') AND (Chr <= '9') then
      	Result := TRUE
      else Result := FALSE;
   end;
var
	intFlag, Loop: Boolean;
   Cnt, IntCnt, SrcLen: Integer;
   Ch, Ch2: Char;
begin
   intFlag 	:= FALSE;
   Loop 		:= TRUE;
   Cnt := 0;
   IntCnt := 0;
   SrcLen := StrLen (Src);

   while Loop do begin
      Ch := PChar(Longint(Src) + Cnt)^;
      Case Ch of
         #0: begin
            Result := '';
         	break;
         end;
         ' ': begin
         end;
         else begin

            if not intFlag then begin { Now Reading char }
               if IsNumber (Ch) then begin
                  intFlag := TRUE;
                  Inc (IntCnt);
               end;
            end else begin { If, now reading integer }
               if not IsNumber (Ch) then begin  { XXE+3 }
                  case UpCase(Ch) of
                     'E':
                        begin
                           if (Cnt >= 1) AND (Cnt+2 < SrcLen) then begin
                              Ch := PChar(Longint(Src) + Cnt - 1)^;
                              if IsNumber (Ch) then begin
                                 Ch  := PChar(Longint(Src) + Cnt + 1)^;
                                 Ch2 := PChar(Longint(Src) + Cnt + 2)^;
                                 if not ((Ch = '+') AND (IsNumber (Ch2))) then begin
                                    intFlag := FALSE;
                                 end;
                              end;
                           end;
                        end;
                     '+':
                        begin
                           if (Cnt >= 1) AND (Cnt+1 < SrcLen) then begin
                              Ch  := PChar(Longint(Src) + Cnt - 1)^;
                              Ch2 := PChar(Longint(Src) + Cnt + 1)^;
                              if not ((UpCase(Ch) = 'E') AND (IsNumber (Ch2))) then begin
                                 intFlag := FALSE;
                              end;
                           end;
                        end;
                     '.':
                        begin
                           if (Cnt >= 1) AND (Cnt+1 < SrcLen) then begin
                              Ch  := PChar(Longint(Src) + Cnt - 1)^;
                              Ch2 := PChar(Longint(Src) + Cnt + 1)^;
                              if not ((IsNumber(Ch)) AND (IsNumber (Ch2))) then begin
                                 intFlag := FALSE;
                              end;
                           end;
                        end;

                     else
                        intFlag := FALSE;
                  end;
               end;
         end; {end of case else}
      end; {end of Case}
      end;
    	if (IntFlag) and (Cnt >= TargPos) then begin
        	Result := '%' + Format ('%d', [IntCnt]);
         exit;
      end;
      Inc (Cnt);
   end;
end;

function GetValueFromMask (Src: PChar; Mask: string): string;
	function Positon (str: string): Integer;
   var
   	str2: string;
	begin
   	str2 := Copy (str, 2, Length(str)-1);
		Result := StrToIntDef (str2, 0);
		if Result <= 0 then Result := 1;
	end;
	function IsNumber (ch: char): Boolean;
	begin
		case ch of
			'0'..'9': Result := TRUE;
			else Result := FALSE;
		end;
	end;
var
	IntFlag, Loop, Sign: Boolean;
	Buf: Str256;
	BufCount, Pos, LocCount, TargLoc, SrcLen: Integer;
	Ch, Ch2: Char;
begin
	SrcLen := StrLen (Src);
	LocCount := 0;
   BufCount := 0;
	Pos := 0;
	IntFlag := FALSE;
	Loop := TRUE;
	Sign := FALSE;

   if Mask = '' then Mask := '%1';
	TargLoc := Positon (Mask);

	while Loop do begin
		if Pos >= SrcLen then break;
		Ch := PChar (Src + Pos)^;
		if not IntFlag then begin {now reading chars}
			if LocCount < TargLoc then begin
				if IsNumber (Ch) then begin
					IntFlag := TRUE;
					BufCount := 0;
					Inc (LocCount);
				end else begin
					if not Sign then begin {default '+'}
						if Ch = '-' then Sign := TRUE;
					end else begin
						if Ch <> ' ' then Sign := FALSE;
					end;
				end;
			end else begin
				break;
			end;
		end;
		if IntFlag then begin {now reading numbers}
			Buf[BufCount] := Ch;
			Inc (BufCount);
			if not IsNumber (Ch) then begin
				case Ch of
					'E','e':
						begin
							if (Pos >= 1) AND (Pos+2 < SrcLen) then begin
								Ch := PChar(Src + Pos - 1)^;
								if IsNumber (Ch) then begin
									Ch  := PChar(Src + Pos + 1)^;
									Ch2 := PChar(Src + Pos + 2)^;
									if not ((Ch = '+') or (Ch = '-') AND (IsNumber (Ch2))) then begin
										Dec (BufCount);
										IntFlag := FALSE;
									end;
								end;
							end;
						end;
					'+','-':
						begin
							if (Pos >= 1) AND (Pos+1 < SrcLen) then begin
								Ch  := PChar(Src + Pos - 1)^;
								Ch2 := PChar(Src + Pos + 1)^;
								if not ((UpCase(Ch) = 'E') AND (IsNumber (Ch2))) then begin
									Dec (BufCount);
									IntFlag := FALSE;
								end;
							end;
						end;
					'.':
						begin
							if (Pos >= 1) AND (Pos+1 < SrcLen) then begin
								Ch  := PChar(Src + Pos - 1)^;
								Ch2 := PChar(Src + Pos + 1)^;
								if not ((IsNumber(Ch)) AND (IsNumber (Ch2))) then begin
									Dec (BufCount);
									IntFlag := FALSE;
								end;
							end;
						end;
					else
						begin
							IntFlag := FALSE;
							Dec (BufCount);
						end;
				end;
			end;
		end;
		Inc (Pos);
	end;
	if LocCount = TargLoc then begin
		Buf[BufCount] := #0;
		if Sign then
			Result := '-' + StrPas (Buf)
		else Result := StrPas (Buf);
	end else Result := '';
end;

procedure GetDirList (path: string; fllist: TStringList);
var
	SearchRec: TSearchRec;
begin
	if FindFirst (path, faAnyFile, SearchRec) = 0 then begin
      fllist.AddObject (SearchRec.Name, TObject(SearchRec.Time));
    	while TRUE do begin
      	if FindNext (SearchRec) = 0 then begin
            fllist.AddObject (SearchRec.Name, TObject(SearchRec.Time));
         end else begin
            SysUtils.FindClose (SearchRec);
            break;
         end;
		end;
   end;
end;

function  GetFileDate (filename: string): integer; //DOS format file date..
var
	SearchRec: TSearchRec;
begin
  Result:=0;//jacky
	if FindFirst (filename, faAnyFile, SearchRec) = 0 then begin
   	Result := SearchRec.Time;
      SysUtils.FindClose (SearchRec); 
   end;
end;




procedure ShlStr (Source: PChar; count: integer);
var
	I, Len: integer;
begin
	Len := StrLen (Source);
	while (count > 0) do begin
		for I:=0 to Len-2 do
      	Source[I] := Source[I+1];
      Source [Len-1] := #0;

   	Dec (count);
   end;
end;

procedure ShrStr (Source: PChar; count: integer);
var
	I, Len: integer;
begin
	Len := StrLen (Source);
	while (count > 0) do begin
		for I:=Len-1 downto 0 do
      	Source[I+1] := Source[I];
      Source [Len+1] := #0;

   	Dec (count);
   end;
end;

function  LRect (l, t, r, b: Longint): TLRect;
begin
	Result.Left := l;
   Result.Top  := t;
   Result.Right := r;
   Result.Bottom := b;
end;

procedure MemPCopy (Dest: PChar; Src: string);
var i: integer;
begin
	for i:=0 to Length(Src)-1 do Dest[i] := Src[i+1];
end;

procedure MemCpy (Dest, Src: PChar; Count: Longint);
var
	I: Longint;
begin
	for I := 0 to Count-1 do begin
   	PChar(Longint(Dest)+I)^ := PChar(Longint(Src)+I)^;
   end;
end;

procedure memcpy2 (TargAddr, SrcAddr: Longint; count: integer);
var
	I: Integer;
begin
	for I:=0 to Count-1 do
   	PChar(TargAddr + I)^ := PChar(SrcAddr + I)^;
end;

procedure memset (buffer: PChar; fillchar: char; count: integer);
var i: integer;
begin
	for i:=0 to count-1 do
   	buffer[i] := fillchar;
end;

procedure Str256PCopy (Dest: PChar; const Src: string);
begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清免费观看高清完整版在线观看| 成人性视频网站| 国产精品18久久久久久久久| 色哦色哦哦色天天综合| 欧美大片一区二区| 一区二区三区精品视频在线| 国产精品综合在线视频| 欧美一区二区在线播放| 亚洲欧美偷拍另类a∨色屁股| 精品在线播放免费| 91精品在线观看入口| 亚洲特黄一级片| 国产精品888| 久久综合色婷婷| 日本欧美韩国一区三区| 在线观看日韩毛片| 亚洲日韩欧美一区二区在线| 国产成人免费在线观看| 精品日韩av一区二区| 日本欧美一区二区| 欧美高清激情brazzers| 亚洲成人一区在线| 日本乱人伦aⅴ精品| 国产精品视频免费| 精品在线免费观看| 精品国产三级电影在线观看| 日本成人在线看| 日韩一区和二区| 免费视频一区二区| 在线成人小视频| 日本亚洲天堂网| 日韩一区二区三区在线观看 | 精品av久久707| 免费观看30秒视频久久| 91精品欧美久久久久久动漫| 婷婷丁香久久五月婷婷| 欧美电影一区二区| 美女视频第一区二区三区免费观看网站| 欧美日韩精品免费观看视频 | 久久精品国产成人一区二区三区| 欧美伦理电影网| 免费成人在线视频观看| 欧美成人精品福利| 国产成人精品综合在线观看 | 欧美一级爆毛片| 麻豆精品在线看| 26uuu精品一区二区在线观看| 久久精品免费看| 久久久亚洲午夜电影| 成人午夜又粗又硬又大| 亚洲欧洲av一区二区三区久久| 成人18视频在线播放| 亚洲精品免费在线播放| 欧美性感一区二区三区| 青娱乐精品在线视频| 26uuu精品一区二区在线观看| 国产呦萝稀缺另类资源| 中文字幕日本不卡| 欧洲在线/亚洲| 麻豆精品一区二区| 国产精品热久久久久夜色精品三区| 91小视频免费观看| 婷婷丁香久久五月婷婷| 国产视频在线观看一区二区三区| kk眼镜猥琐国模调教系列一区二区| 亚洲人成精品久久久久| 7777精品伊人久久久大香线蕉的| 精品午夜一区二区三区在线观看| 国产午夜精品一区二区三区四区| 色94色欧美sute亚洲线路一ni| 日韩精彩视频在线观看| 国产欧美一区二区精品秋霞影院| 一本久道久久综合中文字幕| 免费成人在线网站| 成人欧美一区二区三区小说| 欧美精品久久久久久久多人混战| 国产乱码精品1区2区3区| 亚洲一线二线三线视频| 久久精品亚洲麻豆av一区二区 | 26uuu欧美日本| 欧美综合久久久| 国产乱码精品一品二品| 亚洲成人自拍偷拍| 国产精品久久久久久久久久免费看 | 91黄色免费看| 国产一区二区不卡老阿姨| 亚洲成人一区在线| 中文字幕一区二区日韩精品绯色 | 在线视频你懂得一区| 黄色日韩网站视频| 午夜精品福利一区二区蜜股av| 欧美精彩视频一区二区三区| 欧美一区二区三区成人| 色8久久精品久久久久久蜜| 岛国精品一区二区| 久久精品国产99久久6| 日韩欧美在线影院| 一区二区三区毛片| 欧美日韩精品欧美日韩精品| 色婷婷激情一区二区三区| 午夜精品久久久久久久99樱桃| 久久精品这里都是精品| 91精品国产综合久久婷婷香蕉| 91看片淫黄大片一级在线观看| 国产呦萝稀缺另类资源| 日韩电影一区二区三区四区| 一二三区精品视频| 亚洲美女淫视频| 国产精品乱码人人做人人爱| 精品国精品国产| 欧美一区二区久久| 7777精品伊人久久久大香线蕉最新版| av不卡免费在线观看| 99久久精品一区| 国产成人精品一区二区三区网站观看| 精品亚洲免费视频| 精品在线观看免费| 黄页视频在线91| 久久精品二区亚洲w码| 久久成人免费网| 国产主播一区二区| 国产成a人无v码亚洲福利| 国产精品一区二区视频| 国产精品白丝jk白祙喷水网站| 精品在线观看视频| 国产成人av自拍| 成人高清免费观看| 色综合一个色综合亚洲| 日本韩国欧美在线| 欧美精品色一区二区三区| 7777精品伊人久久久大香线蕉超级流畅 | 日韩理论片在线| 亚洲国产视频a| 日韩和欧美一区二区| 免费在线观看不卡| 国产黄人亚洲片| 日本韩国欧美三级| 宅男在线国产精品| www激情久久| 日韩美女精品在线| 天堂久久一区二区三区| 精品一区二区三区在线播放 | 国产丝袜在线精品| 综合激情成人伊人| 日本中文在线一区| 粉嫩av一区二区三区在线播放 | 久久午夜电影网| 综合中文字幕亚洲| 奇米在线7777在线精品| 国产69精品久久久久毛片| 欧美视频一区在线| 久久综合国产精品| 亚洲精品乱码久久久久久久久 | 久久久不卡影院| 亚洲另类在线视频| 激情综合五月婷婷| 在线观看日产精品| 久久综合资源网| 亚洲国产成人av好男人在线观看| 精品一区二区三区在线播放视频 | 国产不卡高清在线观看视频| 99国产精品久久| 日韩无一区二区| 亚洲黄色av一区| 成人性生交大片免费看在线播放| 欧美日韩精品欧美日韩精品一 | 欧美电影免费观看高清完整版在线观看 | 久久精品欧美日韩精品| 一级做a爱片久久| 大桥未久av一区二区三区中文| 欧美一区三区四区| 亚洲超碰97人人做人人爱| 成人午夜电影网站| 欧美精品一区二区精品网| 亚洲成人精品影院| 在线一区二区观看| 亚洲婷婷在线视频| 成人在线视频一区| 欧美成人高清电影在线| 天堂午夜影视日韩欧美一区二区| 不卡区在线中文字幕| 色婷婷亚洲一区二区三区| 欧美日本一区二区三区四区| 日本一区二区三区四区在线视频| 天天影视网天天综合色在线播放| 99国产精品一区| 国产午夜一区二区三区| 肉色丝袜一区二区| 欧美久久久久久蜜桃| 中文字幕一区二区三区精华液 | 亚洲va天堂va国产va久| 北岛玲一区二区三区四区| 日韩美一区二区三区| 综合在线观看色| 不卡的av网站| 国产亚洲一二三区| 强制捆绑调教一区二区| 日韩欧美亚洲国产另类| 日韩黄色小视频| 欧美日韩国产乱码电影|