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

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

?? zkutils.pas

?? 在作數據庫中個人認為必要的函數和過程
?? PAS
?? 第 1 頁 / 共 2 頁
字號:

unit zkUtils;

interface
uses
  SysUtils, Windows, Classes, MD5,Variants;
  
type
  TBit = 0..31;
  
const
  { 一些有用的ASCII字符 }
  NULL            =  #0;
  BACKSPACE       =  #8;
  TAB             =  #9;
  LF              = #10;
  CR              = #13;
  ESC             = #27;
  BLANK           = #32;
  CRLF            = #13#10;
  SPACE           = BLANK;
  


  function FormatPath(const Value:String;const DIVChar: Char = '\'): String;
  {格式化路徑字符串使之以'\'結束}
  {例子:FormatPath('E:\Temp') = 'E:\Temp\'}
  
  function Replace(Str,s1,s2: String; CaseSensitive: Boolean): String;
  {在目標字符串中替換所有子字符串}
  {例子: Replace('We know what we want','we','I',false) = 'I Know what I want'}
  
  function CopyFromChar(const s: String;const c: Char;const l: Integer): String;
  {從目標字符串s的c所在位置開始復制l個字符}
  {例子: CopyFromChar('Borland Delphi','a',3) = 'and'}
  
	function Get_ComputerName: String;
  {獲取當前計算機名稱}
  {例子: Get_ComputerName = 'JSZXServer'}

	function Get_IPAddress: String;
	{獲取本地IP地址}
  {例子: Get_IPAddress = '146.128.20.203'}

	function Get_UserName: String;
  {獲取當前計算機登錄用戶名稱}
  {例子: Get_UserName = 'Gaisy'}

	function GetSystemDir: String;
  {獲取Windows系統目錄路徑包括驅動器}
  {例子: GetSystemDir = 'C:\WINDOWS\SYSTEM\'}
  
  function GetWinDir: String;
  {獲取Windows目錄路徑包括驅動器}
  {例子: GetWinDir = 'C:\WINDOWS\'}
  
  function GetCurrentDir: String;
  {獲取系統當前目錄路徑包括驅動器}
  {例子: GetCurrentDir = 'C:\WINDOWS\'}
  
  function GetInstallDir: String;
  {返回exe文件的所在目錄路徑包括驅動器}
  {例子: GetInstallDir = 'C:\PROGRAM FILES\BORLAND\DELPHI\BIN\'}
  
  function GetFileDate(Filename: String): TDateTime;
  {返回文件的日期}
  function GetFileVersion(Filename: String): String;
  {返回某一文件的版本信息}


  function SQLString(const AStr: String): String;
  {返回字符串的TSQL編碼}

  function MD5Hash(const Source: String): String;
  function  DataFieldToString(VData: Variant): String;
  function  DataFieldToInt(VData: Variant): Integer;
  function  DataFieldToCurr(VData: Variant): Currency;

  {-------------------------------------------------------------------------------
  過程名:    位操作函數組
  作者:      gaisy
  日期:      2004.06.14
  參數:      const Value: Integer; const TheBit: TBit
  Value為操作數, TheBit為操作位
  例子:      if BitSet(27, 0) then ...;
  判斷27第0位
  -------------------------------------------------------------------------------}
  function bitSet(const Value: Integer;const TheBit: TBit): Boolean;
  function bitOn(const Value: Integer;const TheBit: TBit): Integer;
  function bitOff(const Value: Integer;const TheBit: TBit): Integer;
  function bitToggle(const Value: Integer;const TheBit: TBit): Integer;

  function BigbitSet(const Value: LongInt;const TheBit: TBit): Boolean;
  function BigbitOn(const Value: LongInt;const TheBit: TBit): LongInt;
  function BigbitOff(const Value: LongInt;const TheBit: TBit): LongInt;
  function BigbitToggle(const Value: LongInt;const TheBit: TBit): LongInt;
  
  {-------------------------------------------------------------------------------
  過程名:    去除字符串左右空格函數(擴展)
  作者:      gaisy
  日期:      2004.06.14
  參數:      const S: String; C: Char
  對字符串S去除左右為C的字符
  返回值:    String
  功能描述:
  -------------------------------------------------------------------------------}
  function strTrimChL(const S: String; C: Char): String;
  function strTrimChR(const S: String; C: Char): String;
  function strTrim(const S: String): String;

  /// <summary>
  /// 分解字符串函數
  /// </summary>
  /// <param name="Source">源字符串</param>
  /// <param name="ch">分割符</param>
  /// <returns>包含分割結果的字符串表</returns>
  function SplitString(const Source,ch:String): TStringList;


  {-------------------------------------------------------------------------------
  過程名:    關于日期編解碼的函數和過程
  作者:      gaisy
  日期:      2004.06.14
  參數:      const Year: Integer; Month, Day: Word
  返回值:    TDateTime
  功能描述:
  -------------------------------------------------------------------------------}
  function EncodeDate(const Year: Integer; Month, Day: Word): TDateTime;
  procedure DecodeDate(Date: TDateTime;var Year, Month, Day: Word); overload;
  procedure DecodeDate(Date: TDateTime;var Year: Integer;var Month, Day: Word); overload;
  procedure DecodeDate(Date: TDateTime;var Year, Month, Day: Integer); overload;
  
  
  {-------------------------------------------------------------------------------
  函數名:    DateStr
  作者:      gaisy
  日期:      2004.06.14
  參數:      DateTime: TDateTime; DivChar: Char=' '
  返回值:    String
  功能描述:  返回DataTime類型裝換成的字符串,以DivChar分隔
  -------------------------------------------------------------------------------}
  function DateStr(DateTime: TDateTime; DivChar: Char=' '): String;
  
  {-------------------------------------------------------------------------------
  過程名:    Year、Month、Day
  作者:      gaisy
  日期:      2004.06.14
  參數:      DateTime: TDateTime
  返回值:    Integer
  功能描述:  返回日期的年月日
  -------------------------------------------------------------------------------}
  function Year(DateTime: TDateTime): Integer;
  function Month(DateTime: TDateTime): Integer;
  function Day(DateTime: TDateTime): Integer;
  
  
  {-------------------------------------------------------------------------------
  過程名:    StrToHex、HexToStr
  作者:      gaisy
  日期:      2004.06.14
  參數:      AData: String
  返回值:    String
  功能描述:  轉換10進制數到16進制數
  -------------------------------------------------------------------------------}
  function StrToHex(AData: String): String;
  function HexToStr(AData: String): String;
  
  
  {-------------------------------------------------------------------------------
  過程名:    CreateFolder
  作者:      gaisy
  日期:      2004.06.14
  參數:      const AFolderName: String
  返回值:    Boolean
  功能描述:  建立文件夾
  -------------------------------------------------------------------------------}
  function CreateFolder(const AFolderName: String): Boolean;
  
  
  {-------------------------------------------------------------------------------
  過程名:    IsInteger、IsNumeric
  作者:      gaisy
  日期:      2004.06.14
  參數:      Value: String
  返回值:    Boolean
  功能描述:  判斷一個數是否是整數、數字
  -------------------------------------------------------------------------------}
  function IsInteger(Value: String): Boolean;
  function IsNumeric(Value: String): Boolean;
  
  
  {-------------------------------------------------------------------------------
  過程名:    GetPYIndexChar
  作者:      gaisy
  日期:      2004.06.14
  參數:      hzChar: String
  返回值:    Char
  功能描述:  返回漢字的首母
  -------------------------------------------------------------------------------}
  Function GetPYIndexChar(const hzChar: String): Char;
  
  
	{-------------------------------------------------------------------------------
  過程名:    NumberToChinese
  作者:      gaisy
  日期:      2004.06.14
  參數:      n0 : Real
  返回值:    String
  功能描述:  將數字轉換為中文表示,用作財務處理
  -------------------------------------------------------------------------------}
  Function NumberToChinese(const n0 : Real): String;
  

	Function GetRandomString(const Len: Integer): String;

  //主要用戶MD5運算結果的顯示
	function ByteArrayToStr(D: array of Byte): String;
	function CharArrayToStr(D: array of Char): String;
	
implementation
uses
	Sockets;
const
	DaysPerYear       = 365.2422454;          // Solar Year
	DaysPerMonth      = DaysPerYear / 12;
	DateTimeBaseDay   = -693593;              //  1/1/0001
	EncodeDateMaxYear = 9999;
	SolarDifference   = 1.7882454;            //  Difference of Juliab Calendar to Solar Calendar at 1/1/10000
  DateTimeMaxDay    = 2958466;              //  12/31/EncodeDateMaxYear + 1;

function Get_ComputerName: String;
var
	c: array[0..127] of Char;
	sz: dword;
begin
	sz := SizeOf(c);
  GetComputerName(c, sz);
	Result := c;
end;

function Get_UserName: String;
var
	u: array[0..127] of Char;
	sz: dword;
begin
	sz := SizeOf(u);
  GetUserName(u, sz);
	Result := u;
end;

function Get_IPAddress: String;
var
	tp: TTcpClient;
	straddr: String;
begin
	tp := TTcpClient.Create(nil);
	tp.Close;
	tp.Open;
	straddr := tp.LocalHostAddr;
	Result := straddr;
	tp.Close;
	tp.Free;
end;

function CopyFromChar(const s:String; const c:Char; const l:Integer):String;
  var
    i:Integer;
begin
  	i := Pos(c,s);
  	Result := Copy(s,i,l);
end;

function StrToHex(AData: String): String;
var
  StrResult, Temp: String;
  i: Integer;
begin
  for i := 0 to Length(AData) - 1 do
  begin
    Temp := Format('%x', [Ord(AData[i + 1])]);
    if Length(Temp) = 1 then Temp := '0' + Temp;
    StrResult := StrResult + Temp;
  end;
  Result := StrResult;
end;

function HexToStr(AData: String): String;
function HexToInt(Hex: String): Integer;
var
  Res, I: Integer;
  Ch: Char;
begin
  Res := 0;
  for I := 0 to Length(Hex) - 1 do
  begin
    Ch := Hex[I + 1];
    if (Ch >= '0') and (Ch <= '9') then
      Res := Res * 16 + Ord(ch) - Ord('0')
    else if (Ch >= 'A') and (Ch <= 'F') then
        Res := Res * 16 + Ord(Ch) - Ord('A') + 10
      else if (Ch >= 'a') and (Ch <= 'f') then
          Res := Res * 16 + Ord(Ch) - Ord('a') + 10
  end;
  Result := Res;
end;

var
  Str, Temp: String;
  I: Integer;
begin
  Str := '';
  for I := 0 to Length(AData) div 2 - 1 do
  begin
    Temp := Copy(AData, I * 2 + 1, 2);
    Str := Str + Chr(HexToInt(Temp));
  end;
  Result := Str;
end;

function strTrim(const S: String): String;
begin
  Result:=StrTrimChR(StrTrimChL(S,BLANK),BLANK);
end;

function strTrimChL(const S: String; C: Char): String;
begin
  Result:=S;
  while (Length(Result)>0) and (Result[1]=C) do Delete(Result,1,1);
end;

function strTrimChR(const S: String; C: Char): String;
begin
  Result:=S;
  while (Length(Result)> 0) and (Result[Length(Result)]=C) do
    Delete(Result,Length(Result),1);
end;

function bitSet(const Value: Integer; const TheBit: TBit): Boolean;
begin
  Result := (Value and (1 shl TheBit)) <> 0;
end;

function bitOn(const Value: Integer; const TheBit: TBit): Integer;
begin
  Result := Value or (1 shl TheBit);
end;

function bitOff(const Value: Integer; const TheBit: TBit): Integer;
begin
  Result := Value and ((1 shl TheBit) xor $FFFFFFFF);
end;

function bitToggle(const Value: Integer; const TheBit: TBit): Integer;
begin
  Result := Value xor (1 shl TheBit);
end;

function BigbitSet(const Value: LongInt; const TheBit: TBit): Boolean;
begin
  Result := (Value and (1 shl TheBit)) <> 0;
end;

function BigbitOn(const Value: LongInt; const TheBit: TBit): LongInt;
begin
  Result := Value or (1 shl TheBit);
end;

function BigbitOff(const Value: LongInt; const TheBit: TBit): LongInt;
begin
  Result := Value and ((1 shl TheBit) xor $FFFFFFFFFFFFFFFF);
end;

function BigbitToggle(const Value: LongInt; const TheBit: TBit): LongInt;
begin
  Result := Value xor (1 shl TheBit);
end;

function FormatPath(const Value:String; const DIVChar: Char = '\'): String;
begin
  if (Value[Length(Value)]<>DIVChar) then
    Result := Value + DIVChar
  else
    Result := Value;
end;

function Replace(Str,s1,s2:String; CaseSensitive: Boolean): String;
var
  i: integer;
  s,t: String;
begin
  s := '';
  t := Str;
  repeat
    if CaseSensitive then
      i := pos(s1,t)
    else
      i := pos(LowerCase(s1),LowerCase(t));
    if i>0 then
    begin
      s := s + Copy(t,1,i-1) + s2;
      t := Copy(t,i+Length(s1),MaxInt);
    end
    else s := s+t;
  until i<=0;
  Result := s;
end;
function GetSystemDir: String;
var
  p: PChar;
  z: Integer;
begin
  z := 255;
  GetMem(p,z);
  GetSystemDirectory(p,z);
  Result := FormatPath(String(p));
  FreeMem(p,z);
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久电影网站中文字幕| 色欧美日韩亚洲| 成人免费视频一区| 成人午夜激情视频| 欧美在线制服丝袜| 日韩女优制服丝袜电影| 国产午夜三级一区二区三| 国产精品三级av| 日韩精品色哟哟| zzijzzij亚洲日本少妇熟睡| 色美美综合视频| 精品电影一区二区三区| 亚洲欧美日韩久久| 经典一区二区三区| 欧美中文字幕久久| 国产日韩欧美精品电影三级在线| 亚洲精品写真福利| 国产一区二区女| 欧美日韩高清一区二区| 中文字幕av一区 二区| 爽好多水快深点欧美视频| 99riav久久精品riav| 久久久久国产成人精品亚洲午夜| 亚洲电影欧美电影有声小说| 丁香啪啪综合成人亚洲小说| 日韩欧美精品三级| 亚洲第一电影网| 色综合久久综合中文综合网| 久久色在线视频| 欧美bbbbb| 欧美久久久久久久久久| 亚洲精品日日夜夜| 成人妖精视频yjsp地址| 久久久久99精品国产片| 美腿丝袜亚洲一区| 欧美一区二区三区人| 午夜影院久久久| 欧美视频第二页| 亚洲自拍与偷拍| 欧美色视频在线| 亚洲va国产va欧美va观看| 在线观看国产一区二区| 亚洲男人的天堂在线aⅴ视频| 国产91精品露脸国语对白| 国产肉丝袜一区二区| 91在线云播放| 亚洲午夜电影在线观看| 亚洲欧美另类久久久精品| 91年精品国产| 五月激情丁香一区二区三区| 欧美精品v国产精品v日韩精品| 日本大胆欧美人术艺术动态| 日韩三级中文字幕| 成人黄页在线观看| 亚洲在线观看免费视频| 欧美一区二区三区色| 国产高清不卡二三区| 亚洲一区二区三区中文字幕在线| 欧美日韩另类一区| 精品一二线国产| 最新中文字幕一区二区三区 | 91精品婷婷国产综合久久竹菊| 日韩精品成人一区二区在线| 久久免费视频色| 91国产免费看| 国产精品一品视频| 亚洲bt欧美bt精品| 国产片一区二区三区| 欧美精品777| 99久久精品99国产精品| 久久99久久久久久久久久久| 亚洲精品综合在线| 欧美激情一区二区在线| 日韩欧美色电影| 欧美色视频一区| 99精品国产热久久91蜜凸| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲第一成人在线| 91精品国产免费| 欧美一区欧美二区| 日韩欧美国产一区在线观看| 日韩欧美你懂的| 国产日韩高清在线| 成人免费在线观看入口| 亚洲专区一二三| 亚洲免费在线播放| 国产欧美一区在线| 日韩久久精品一区| 在线成人午夜影院| 日本精品一区二区三区四区的功能| 精品影视av免费| 日韩精品欧美成人高清一区二区| 悠悠色在线精品| 亚洲蜜臀av乱码久久精品| 中文字幕中文在线不卡住| 精品成人免费观看| 欧美成人伊人久久综合网| 制服丝袜日韩国产| 欧美一区二区三区小说| 欧美日韩国产成人在线91| 欧美性生活久久| 91麻豆精品国产91久久久久久| 欧洲一区二区av| 欧美视频一区在线| 日韩一二三四区| 日韩精品专区在线影院观看| 日韩欧美综合一区| 久久久国产精品不卡| 日本一区二区三级电影在线观看| 国产日韩精品一区二区三区 | 日韩欧美国产综合一区| 久久久亚洲精品一区二区三区| 国产精品成人免费在线| 日本sm残虐另类| 国产成人免费9x9x人网站视频| 91农村精品一区二区在线| 日韩视频一区二区三区| 一区二区三区在线免费播放| 爽爽淫人综合网网站| 99久久精品情趣| 欧美一卡在线观看| 一区二区三区四区在线免费观看| 婷婷国产v国产偷v亚洲高清| 成人免费看片app下载| 日韩一区二区在线观看| 亚洲第一激情av| 99精品一区二区三区| 欧美成人一区二区三区在线观看| 一区二区三区欧美激情| 国产高清久久久| 日韩女优制服丝袜电影| 亚洲一区二区四区蜜桃| 成人av第一页| 亚洲国产精品成人久久综合一区| 日本不卡视频一二三区| 欧美色图免费看| 1区2区3区国产精品| 不卡视频在线观看| 国产精品二三区| 色综合网色综合| 一区二区三区在线免费观看| 中文字幕日本乱码精品影院| 亚洲欧美一区二区在线观看| av色综合久久天堂av综合| 一区二区三区精品在线| 精品盗摄一区二区三区| 国产成人免费在线观看不卡| 综合在线观看色| wwwwxxxxx欧美| 在线日韩一区二区| 国产乱码精品一品二品| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 成人精品gif动图一区| 亚洲欧美影音先锋| 欧美一级日韩一级| 国产激情视频一区二区三区欧美| 精品日韩在线观看| 麻豆极品一区二区三区| 久久久久久久久久久久久久久99 | 国产成人精品影院| 精品福利一二区| 懂色av噜噜一区二区三区av| 日韩欧美三级在线| 免费在线观看一区| 久久免费看少妇高潮| 懂色av一区二区三区免费观看| 精品国产乱码久久久久久免费| 国产一区二区三区免费播放| 中文欧美字幕免费| 欧美性大战xxxxx久久久| 日韩国产欧美视频| 国产亚洲精品7777| 欧美视频一区在线| 狠狠色狠狠色综合| 亚洲一区在线观看网站| 精品福利一二区| 91国偷自产一区二区开放时间 | 日韩伦理av电影| 色噜噜狠狠色综合欧洲selulu| 免费观看在线综合| 中文字幕一区二区三区在线观看 | 成人免费视频网站在线观看| 亚洲一区二区欧美日韩| 欧美一区二区三区日韩| 成人高清免费在线播放| 日本欧美一区二区三区| 久久青草国产手机看片福利盒子| 99r精品视频| 国产91精品露脸国语对白| 亚洲免费在线播放| 中文字幕一区免费在线观看| 精品国产免费人成电影在线观看四季| 91久久精品一区二区二区| 粉嫩欧美一区二区三区高清影视| 一级中文字幕一区二区| 国产精品久久久久久久岛一牛影视 | 成人妖精视频yjsp地址| 久久成人精品无人区| 午夜亚洲国产au精品一区二区| 亚洲男人天堂av|