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

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

?? helpers.pas

?? MysqlFront的源碼
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit helpers;


// -------------------------------------
// HeidiSQL
// Functions-library
// -------------------------------------


interface

uses main, Classes, SysUtils, Graphics, db, clipbrd, dialogs,
  forms, controls, ShellApi, checklst, windows, ZDataset, ZAbstractDataset;

  function trimc(s: String; c: Char) : String;
  function implode(seperator: String; a: array of string) :String;
  function implodestr(seperator: String; a: TStringList) :String;
  function implodestrs(seperator: String; a: TStrings) :String;
  function explode(separator, a: String) :TStringList;
  function strpos(haystack, needle: String; offset: Integer=0) : Integer;
  function validname(name: String) : boolean;
  function getklammervalues(str: String):String;
  function parsesql(sql: String) : TStringList;
  function sstr(str: String; len: Integer) : String;
  function notinlist(str: String; strlist: TStrings): Boolean;
  function escape_string(Value: String; StrLen: Integer=-1) : String;
  function inarray(str: String; a: Array of String): Boolean;
  function encrypt(str: String): String;
  function decrypt(str: String): String;
  function htmlentities(str: String): String;
  function color2rgb(c: TColor):longint;
  function esc2ascii(str: String): String;
  function StrCmpBegin(Str1, Str2: string): Boolean;
  function Max(A, B: Integer): Integer; assembler;
  function Min(A, B: Integer): Integer; assembler;
  function urlencode(url: String): String;
  procedure wfs( var s: TFileStream; str: String = '');
  procedure ToggleCheckListBox(list: TCheckListBox; state: Boolean);
  function _GetFileSize(filename: String): Int64;
  function Mince(PathToMince: String; InSpace: Integer): String;
  procedure RenameRegistryItem(AKey: HKEY; Old, New: String);
  procedure CopyRegistryKey(Source, Dest: HKEY);
  procedure DeleteRegistryKey(Key: HKEY);
  function MakeInt( Str: String ) : Integer;


implementation

const
	CRLF = #13#10;




function trimc(s: String; c: char) : String;
var a,z: Integer;
begin
  if c = '' then c := '"';
  if s <> '' then
  begin

    a := 1;
    while s[a] = c do
    begin
      delete(s, a, 1);
      if s = '' then
        exit;
    end;

    z := length(s);
    while s[z] = c do
    begin
      delete(s, z, 1);
      dec(z);
    end;

  end;

  result := s;
end;




function implode(seperator: String; a: array of string) :String;
var
  i : Integer;
  text : String;
begin
  result := '';
  for i:=1 to high(a) do
  begin
    text := text + a[i];
    if i < high(a) then
      text := text + seperator;
  end;
  result := text;
end;


function implodestr(seperator: String; a: TStringList) :String;
var
  i : Integer;
  text : String;
begin
  result := '';
  for i:=0 to a.Count-1 do
  begin
    text := text + a[i];
    if i < a.Count-1 then
      text := text + seperator;
  end;
  result := text;
end;

function implodestrs(seperator: String; a: TStrings) :String;
var
  i : Integer;
  text : String;
begin
  result := '';
  for i:=0 to a.Count-1 do
  begin
    text := text + a[i];
    if i < a.Count-1 then
      text := text + seperator;
  end;
  result := text;
end;


// explode a string by separator into a TStringList
function explode(separator, a: String) :TStringList;
var
  i : Integer;
  item : String;
begin
  result := TStringList.Create();

  i := pos(separator, a);
  while i > 0 do begin
    item := copy(a, 0, i-1);
    item := trim(item);
    result.Add(item);
    a := copy(a, i+length(separator), length(a));
    i := pos(separator, a);
  end;
  if a <> '' then
    result.Add(trim(a));
end;



// return first position of needle in haystack (from char[offset])
function strpos(haystack, needle: String; offset: Integer=0) : Integer;
begin
  haystack := copy(haystack, offset, length(haystack));
  result := pos(needle, haystack);
  if result > 0 then
    result := result + offset-1;
end;



// valid table/db-name?
function validname(name: String) : boolean;
var
  i: Integer;
begin
  result := false;
  if (length(name) > 0) and (length(name) < 65) then
    result := true;

  for i:=1 to length(name) do
  begin
    if (name[i] in ['\','/',':','*','?','"','<','>','|','.',' ']) then
    begin
      result := false;
      break;
    end;
  end;

end;


function getklammervalues(str: String):String;
var
  p1,p2        : Integer;
begin
  p1 := pos('(', str);
  for p2:=strlen(pchar(str)) downto 0 do
    if str[p2] = ')' then break;
  result := copy (str, p1+1, p2-p1-1);
end;


// tokenize sql-script and return a TStringList with sql-statements
function parsesql(sql: String) : TStringList;
var
  i, start                          : Integer;
  instring, backslash, incomment    : Boolean;
  encloser                          : Char;
begin
  result := TStringList.Create;
  sql := trim(sql);
  instring := false;
  start := 1;
  backslash := false;
  incomment := false;
  encloser := ' ';

  for i:=1 to length(sql) do begin
    if (sql[i] in ['#']) and (not backslash) and (not instring) then begin
      incomment := not incomment;
      sql[i] := ' ';
      continue;
    end;
    if (sql[i] = #13) and incomment then
      incomment := false;
    if incomment then begin
      sql[i] := ' ';
      continue;
    end;

    if (sql[i] in ['''','"']) and (not backslash) and (not incomment) then begin
      if instring and (sql[i] = encloser) then  // string closed
        instring := not instring
      else if (not instring) then begin         // string is following
        instring := true;
        encloser := sql[i];                     // remember enclosing-character
      end;
    end;

    if (sql[i] = '\') or backslash then
      backslash := not backslash;

    if (sql[i] = ';') and (not instring) then
    begin
      result.Add(trim(copy(sql, start, i-start)));
      start := i+1;
    end;
  end;

  if start < i then
    result.Add(trim(copy(sql, start, i-start)));

end;


// shorten string to length len and append 3 dots
function sstr(str: String; len: Integer) : String;
begin
  if length(str) >= len then
  begin
    str := copy(str, 0, len);
    str := str + '...';
  end;
  result := str;
end;


// str in TStrings strlist?
function notinlist(str: String; strlist: TStrings): Boolean;
var i: Integer;
begin
  result := true;
  for i:=0 to strlist.Count-1 do
  begin
    if str = strlist[i] then
    begin
      result := false;
      break;
    end;
  end;
end;



// addslashes...
{function escape_string(str: String) : String;
var
  i : Integer;
  escaped : Array of char;
begin
  result := '';
  i := 1;
  while(i < length(str)+1) do begin
    case ord(str[i]) of
      13: result := result + '\r';
      10: result := result + '\n';
      9:  result := result + '\t';
      92, 34, 39: result := result + '\' + str[i]; //  \ " '
      else result := result + str[i];
    end;
    inc(i);
  end;
end;
}

// addslashes with String...
function escape_string(Value: String; StrLen: Integer=-1) : String;
var
  I, Add, Len: Integer;
  Ptr: PChar;
begin
  Add := 0;
  if StrLen = -1 then Len := Length(Value)
  else Len := StrLen;
  for I := 1 to Len do
    if Value[I] in ['''', '"', '\', #26, #10, #13, #0] then
      Inc(Add);
  SetLength(Result, Len + Add);
  Ptr := PChar(Result);
  for I := 1 to Len do
  begin
    if Value[I] in ['''', '"', '\', #26, #10, #13, #0] then
    begin
      Ptr^ := '\';
      Inc(Ptr);
      case Value[I] of
        #26: Ptr^ := 'Z';
        #10: Ptr^ := 'n';
        #13: Ptr^ := 'r';
        #0: Ptr^ := '0';
        else Ptr^ := Value[I];
      end;
    end else
      Ptr^ := Value[I];
    Inc(Ptr);
  end;
end;



function inarray(str: String; a: Array of String): Boolean;
var i : Integer;
begin
  result := false;
  i := 0;
  while i < length(a) do begin
    if a[i] = str then begin
      result := true;
      break;
    end;
    inc(i);
  end;
end;


// password-encryption
function encrypt(str: String) : String;
var
  i, salt, nr : integer;
  h : String;
begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美中日韩| 懂色av中文字幕一区二区三区| 午夜精品久久久久久久99樱桃| 日韩国产高清在线| 国产麻豆成人传媒免费观看| av不卡免费在线观看| 欧美系列在线观看| 久久午夜色播影院免费高清| 亚洲色图第一区| 日韩av成人高清| 成人av电影在线| 日韩一区二区三区免费看| 国产精品欧美久久久久无广告| 一卡二卡欧美日韩| 国产麻豆午夜三级精品| 欧美午夜宅男影院| 国产亚洲一本大道中文在线| 亚洲午夜电影在线观看| 国产一区二区视频在线| 在线亚洲欧美专区二区| www国产精品av| 亚洲国产中文字幕在线视频综合| 精品综合久久久久久8888| 99久久夜色精品国产网站| 欧美一区二区三区视频| 一区在线观看免费| 裸体一区二区三区| 一本久道久久综合中文字幕| 久久午夜羞羞影院免费观看| 亚洲成人av福利| heyzo一本久久综合| 日韩美女天天操| 亚洲自拍偷拍综合| 国产成人精品一区二区三区四区| 欧美午夜理伦三级在线观看| 国产女主播在线一区二区| 日韩一区精品字幕| 色综合欧美在线| 久久精品免视看| 日韩三级免费观看| 一区二区久久久| 国产99精品视频| 亚洲精品在线观| 久久国产精品72免费观看| 色综合天天天天做夜夜夜夜做| 久久亚洲综合色一区二区三区| 亚洲国产视频网站| 99久久综合色| 欧美极品美女视频| 成人天堂资源www在线| 国产女人aaa级久久久级| 91麻豆精品国产自产在线观看一区| 91色乱码一区二区三区| gogo大胆日本视频一区| 精品国产一区二区三区久久久蜜月| 亚洲va韩国va欧美va精品| 91看片淫黄大片一级在线观看| 国产视频一区二区在线观看| 韩国精品主播一区二区在线观看 | 91精品黄色片免费大全| 一区二区三区欧美日| 成人精品在线视频观看| 久久久激情视频| 国产乱色国产精品免费视频| 欧美不卡一区二区三区| 日韩国产欧美一区二区三区| 欧美剧在线免费观看网站| 亚洲精品日韩一| 91福利在线导航| 亚洲一区自拍偷拍| 欧美吞精做爰啪啪高潮| 亚洲一区二区欧美日韩| 欧美无乱码久久久免费午夜一区| 亚洲自拍都市欧美小说| 色国产综合视频| 一区二区三区欧美日韩| 欧美专区亚洲专区| 亚洲国产视频网站| 欧美精品第一页| 免费看欧美美女黄的网站| 日韩欧美一区在线| 精品一区二区三区免费毛片爱| 久久亚洲二区三区| 国产成人自拍在线| 日本一区二区三区高清不卡| 99久久精品情趣| 亚洲综合久久av| 欧美一区二区播放| 国产呦萝稀缺另类资源| 国产免费成人在线视频| 99热99精品| 亚洲电影一级片| 日韩免费一区二区| 国产精品小仙女| ...xxx性欧美| 欧美日韩一区在线观看| 免费看欧美美女黄的网站| 久久久欧美精品sm网站| 成人h动漫精品一区二| 一区二区三区中文在线| 欧美电影在线免费观看| 国产麻豆91精品| 亚洲精品免费在线播放| 日韩一区二区免费在线电影 | 亚洲国产精品ⅴa在线观看| 91一区二区在线观看| 亚洲图片一区二区| 欧美成人性战久久| 成人黄色在线看| 午夜国产精品影院在线观看| 精品99999| 91在线看国产| 丝袜美腿一区二区三区| 国产网站一区二区三区| 在线亚洲精品福利网址导航| 久久国产福利国产秒拍| 中文字幕一区三区| 在线电影欧美成精品| 国产不卡一区视频| 亚洲午夜精品在线| 国产亚洲一本大道中文在线| 欧美中文字幕亚洲一区二区va在线 | 国产精品一区一区| 一二三区精品视频| 欧美精品一区二区三区一线天视频| 懂色av一区二区三区免费观看 | 欧美视频一区二区三区| 国精产品一区一区三区mba视频| 亚洲人成精品久久久久久| 欧美一二三四区在线| gogo大胆日本视频一区| 美女在线视频一区| 一区二区三区在线影院| 久久久亚洲精华液精华液精华液| 欧美丝袜自拍制服另类| 国产91精品露脸国语对白| 日韩中文字幕亚洲一区二区va在线| 国产欧美精品一区| 日韩一级欧美一级| 日本韩国欧美在线| 国产精品456| 美腿丝袜亚洲色图| 一区二区三区在线观看欧美| 久久综合国产精品| 91精品久久久久久久99蜜桃| 色综合夜色一区| 国产成人午夜视频| 麻豆视频一区二区| 午夜视频在线观看一区二区三区 | 欧美在线免费播放| jlzzjlzz欧美大全| av电影在线观看一区| 精品视频一区二区三区免费| 欧美精品一区二区三区高清aⅴ| 国产精品久久综合| 精品午夜一区二区三区在线观看| av电影在线观看不卡 | 91久久一区二区| 国产欧美日韩精品一区| 丝袜亚洲另类欧美| 91麻豆swag| ...av二区三区久久精品| 国产成人亚洲精品狼色在线| 日韩欧美国产综合| 亚洲午夜影视影院在线观看| av激情亚洲男人天堂| 国产亚洲va综合人人澡精品| 日本特黄久久久高潮 | 色久优优欧美色久优优| 中文字幕一区二区三区在线播放| 91在线一区二区| 国产精品国模大尺度视频| 亚洲国产一区二区在线播放| 亚洲精品国产精品乱码不99| 免费xxxx性欧美18vr| 欧美在线999| 亚洲人成7777| 久久尤物电影视频在线观看| 欧洲av在线精品| 97aⅴ精品视频一二三区| 日韩精彩视频在线观看| 国产精品久久久久久久久动漫 | 国产精品伦理一区二区| 国产亚洲欧美在线| 久久综合久久综合久久综合| 91精品国产乱| 91久久精品网| 在线欧美一区二区| 91在线国产福利| 91丨九色丨国产丨porny| 91在线视频网址| www.日韩av| 99re视频精品| 波多野结衣一区二区三区| 99国产精品视频免费观看| 不卡的电影网站| 99精品视频中文字幕| 91视频观看视频| 欧美三级在线视频| 欧美日韩成人一区|