亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
日韩午夜精品视频| 欧美美女一区二区在线观看| 美女一区二区在线观看| 亚洲一区欧美一区| 亚洲人成伊人成综合网小说| 国产精品拍天天在线| 日本一区二区视频在线观看| 欧美国产日韩在线观看| 欧美激情一区三区| 国产拍欧美日韩视频二区| 欧美极品xxx| 日韩一区在线看| 亚洲精品成a人| 天天操天天色综合| 麻豆精品一区二区综合av| 午夜精品久久一牛影视| 日本不卡1234视频| 国产呦萝稀缺另类资源| 成人18精品视频| 91福利视频网站| 日韩视频免费观看高清完整版 | 国产专区欧美精品| 国产一区视频在线看| 不卡视频一二三| 欧美高清视频一二三区 | 亚洲精品视频免费看| 亚洲va国产天堂va久久en| 日本不卡一区二区三区| 国产乱国产乱300精品| 91丨九色丨黑人外教| 7777精品伊人久久久大香线蕉最新版| 欧美成人猛片aaaaaaa| 国产精品久久久久久亚洲伦| 一区二区三区免费网站| 蜜乳av一区二区| 色综合网站在线| 日韩精品中文字幕一区二区三区| 欧美极品少妇xxxxⅹ高跟鞋 | 一区二区三区欧美日韩| 久久精品国产**网站演员| 不卡视频一二三四| 日韩欧美国产不卡| 亚洲天堂精品在线观看| 久久精品国产一区二区三区免费看| 成人美女视频在线观看18| 欧美日韩精品福利| 亚洲欧洲三级电影| 国产成人精品一区二区三区四区 | 亚洲精品一线二线三线 | 日韩一区二区视频在线观看| 日本一区二区三区电影| 奇米一区二区三区av| 在线精品视频小说1| 久久亚洲一区二区三区明星换脸| 亚洲成av人片一区二区梦乃| a级高清视频欧美日韩| 久久久精品国产99久久精品芒果| 亚洲国产另类精品专区| 成人激情午夜影院| 久久精品夜夜夜夜久久| 麻豆91精品91久久久的内涵| 欧美男女性生活在线直播观看 | 在线观看国产日韩| 综合久久久久综合| 成人午夜电影小说| 国产香蕉久久精品综合网| 日韩精品成人一区二区在线| 欧美日韩国产免费| 亚洲在线免费播放| 欧美色偷偷大香| 亚洲女同ⅹxx女同tv| 99精品国产一区二区三区不卡| 国产精品免费观看视频| 国产91综合网| 中文天堂在线一区| 99久久综合国产精品| 国产欧美日韩不卡免费| 成人综合婷婷国产精品久久免费| 国产亚洲婷婷免费| 成人精品视频一区| 亚洲女人****多毛耸耸8| 91一区二区在线| 亚洲一区二区欧美日韩| 欧美日韩高清在线播放| 秋霞午夜鲁丝一区二区老狼| 欧美精品高清视频| 久久不见久久见免费视频7| 日韩美女一区二区三区四区| 国产一区二区精品久久91| 欧美极品xxx| 国产99精品在线观看| 婷婷成人激情在线网| 国产一区 二区 三区一级| www成人在线观看| 国产激情一区二区三区桃花岛亚洲| 久久蜜桃av一区精品变态类天堂| 国产成人精品午夜视频免费| 综合色中文字幕| 欧美日韩一区小说| 美女视频一区在线观看| 国产日韩v精品一区二区| 日本高清不卡在线观看| 男女男精品视频网| 日本一区二区免费在线观看视频| 色综合一个色综合亚洲| 日韩精品电影在线| 国产精品天美传媒沈樵| 欧美日韩视频在线观看一区二区三区 | 日韩一区二区三区av| 国产精一区二区三区| 亚洲伦理在线精品| 精品少妇一区二区三区免费观看 | 欧美极品少妇xxxxⅹ高跟鞋| 日本精品免费观看高清观看| 久久精品国产成人一区二区三区| 国产精品毛片久久久久久久| 3atv一区二区三区| 色诱视频网站一区| 国产综合色精品一区二区三区| 亚洲裸体xxx| www久久精品| 91麻豆精品国产综合久久久久久 | 欧美性欧美巨大黑白大战| 国产一区二区在线看| 无码av中文一区二区三区桃花岛| 欧美激情一区二区三区不卡 | 欧美xxxxxxxx| 日本久久精品电影| 国产成人一区在线| 精品一区二区三区日韩| 日韩经典一区二区| 一区二区三区不卡在线观看| 国产欧美日韩视频一区二区| 精品免费一区二区三区| 欧美日韩免费在线视频| 色吧成人激情小说| jlzzjlzz欧美大全| 成人一区二区三区视频在线观看| 免费高清在线一区| 午夜一区二区三区视频| 亚洲欧美日韩系列| 成人欧美一区二区三区小说| 国产午夜精品一区二区三区视频 | 97久久超碰国产精品| 成人在线一区二区三区| 国产福利91精品一区| 国产自产高清不卡| 国产在线视频一区二区| 久久97超碰国产精品超碰| 秋霞电影一区二区| 日韩和欧美一区二区三区| 午夜在线电影亚洲一区| 天天色综合成人网| 日韩av不卡在线观看| 日韩av中文字幕一区二区| 日本欧美肥老太交大片| 蜜桃视频第一区免费观看| 免费久久精品视频| 久久精品国产亚洲5555| 国内精品久久久久影院薰衣草| 黄色精品一二区| 国产成人亚洲综合a∨婷婷| 成人免费视频免费观看| 91色porny蝌蚪| 欧美视频在线一区| 日韩欧美国产麻豆| 国产欧美精品一区二区三区四区 | 色偷偷88欧美精品久久久| 欧美色综合网站| 欧美一卡2卡三卡4卡5免费| 精品国产91乱码一区二区三区| 2023国产一二三区日本精品2022| 26uuuu精品一区二区| 国产精品高潮呻吟久久| 亚洲主播在线观看| 久久福利视频一区二区| 国产福利一区二区三区视频在线 | 国产精品私房写真福利视频| 亚洲欧美综合色| 亚洲国产视频网站| 极品美女销魂一区二区三区 | 欧美精品 日韩| 国产女人aaa级久久久级| 亚洲精品大片www| 老司机一区二区| 99久久精品免费看国产| 91精品欧美久久久久久动漫| 国产亚洲一区二区在线观看| 亚洲欧美日韩国产一区二区三区 | 久久精品免费看| 97精品国产露脸对白| 91精品国产全国免费观看| 中文字幕第一区| 美日韩一区二区三区| 不卡的av电影| 精品少妇一区二区| 亚洲bdsm女犯bdsm网站| 99久久婷婷国产| 久久日一线二线三线suv| 亚洲中国最大av网站|