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

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

?? myclass.pas

?? 數據庫通用工具
?? PAS
字號:
unit myclass;
{
一組文件及目錄操作函數,可直接引用此單元文件。
歡迎大家批評指正!
作者:董曉軍(lukisy)
E-mail:lukisy@sohu.com
http://www.jlspinfo.com
}
interface
uses
windows,SysUtils,shellapi,classes,forms,ADODB,Controls,inifiles,dialogs,filectrl;
 type
    TMyfunction = class (TComponent)
        private
          AdoAccesscon:string;
          AdoSqlserver:string;
          Confingfiles:string;
          TTmpfiles:string;
          TLogfiles:string;
          TErrfiles:string;
          Function Dir(source,dest,cmd:string):boolean;   //1
        public
          Function DCopyDirectorysub(source,dest:string):boolean;   //  2  復制目錄,在目標路徑下生成原目錄
          Function DCopyDirectorynul(source,dest:string):boolean;   //  3  復制目錄,在目標路徑下生不成原目錄
          Function DMoveDirectory(source,dest:string):boolean;      //  4  移動目錄,
          Function DDeleteDirectory(source:string):boolean;         //  5  刪除目錄
          Function DFindDirectory(source:string;findout:tstringlist):boolean;  //  6  查找子目錄,結果保存在findout中
          Function DGetdir:string;  //選擇目錄
          Function FFileSearch(Filepath,Ext:string;findout:tstringlist;Subdir:boolean):boolean;
          //  7  查找文件,filepath 路徑,ext 擴展名,findout 結果, subdir 是否查找子目錄。
          Function SSetAdoaccess(Accessfile,passwd:string):string;
          // 8  設置adoaccess連接
          Function SSetAdosqlserver(Host,User,Passwd,Database:string):string;overload;
          Function SSetAdosqlserver(Configfile:string):string;overload;
          //  9,10  設置adosqlserver連接。
          Function WRunproc(filepaths:string):boolean;
          //  11  執行外部程序
          Function WAskinfo(title:string;body:string):boolean;
          // 12 詢問框,
          Function WWriteerrorlog(filename:string;data:string;notime:boolean=false):boolean;
          // 13  寫錯誤日志  notime 是否寫時間

 end;
 procedure Register;
implementation


procedure Register;
begin
//  registercomponents('myclass',
  RegisterComponents('MyClass', [TMyfunction]);
end;
Function TMyfunction.Dir(source,dest,cmd:string):boolean;
var
//1
 fo: TSHFILEOPSTRUCT;
begin
 FillChar(fo, SizeOf(fo), 0);
 with fo do
 begin
   Wnd := 0;
   if cmd='copy' then
   wFunc := FO_COPY
   else
   wFunc := FO_MOVE;
   pFrom := PChar(source+#0);
   pTo := PChar(Dest+#0);
   fFlags := FOF_NOCONFIRMATION+FOF_NOCONFIRMMKDIR+FOF_SILENT;//FOF_SILENT不顯示進度條
 end;
 {
 FO_COPY:拷貝pfrom域中指定的(目錄,例中是'c:\a')到pto中指定的位置(例中為'c:\b') 
        FO_DELET:刪除pfrom中指定的文件.   (pTo不用) 
        FO_MOVE:移動PFrom中指定的文件到pto中指定的位置。  
        FO_RENAME:給PFrom中指定的文件改名。
pFrom:指定一個或多個源文件名的緩沖區地址。多個名字必須用NULL分隔。名字列表必須用兩個NULL(nil,'\0')來結束。
pTo:目標文件或目錄名緩沖區地址。 如果fFlags域指定FOF_MULTIDESTFILES,緩沖區可以包含多個目標文件名。多個名字必須用NULL分隔。名字列表必須用兩個NULL(nil,'\0')
fFlags :控制操作的標志,可以是以下各值組合:
        FOF_ALLOWUNDO:保留Undo信息, 如果pFrom沒有包含全的絕對的路徑或文件名此值忽略。
        FOF_CONFIRMMOUSE:沒有實現.
        FOF_FILESONLY:只有文件名使用通配符時(*.*)才對文件操作。
        FOF_MULTIDESTFILES:  pTo域指一定了多個目標文件.(一個對就一個源文件) 而不是指定一個目錄來存放所有源文件  
        FOF_NOCONFIRMATION:所有顯示的對話框全部選擇yes to all
        FOF_NOCONFIRMMKDIR: 如果需要創建一個新目錄不確認。
        FOF_NOCOPYSECURITYATTRIBS:  4.71. Microsoft® Windows NT® only. 安全屬性不復制.
        FOF_NOERRORUI:發生錯誤時不提供用戶接口。
        FOF_RENAMEONCOLLISION:  move,copy,rename操作時如目標文件存在,給操作的文件另起一個名字。
        FOF_SILENT:不顯示進度對話框
        FOF_SIMPLEPROGRESS:顯示進度對話框但不顯示文件名。
        FOF_WANTMAPPINGHANDLE:如果指定了FOF_RENAMEONCOLLISION 當任何文件改名時將填寫hNameMappings 域
fAnyOperationsAborted:當用戶在完成前取消任何文件操作時賦值TRUE,否則FALSE.
}
 Result := (SHFileOperation(fo) = 0);
end;
///////////////////////////////////////
Function TMyfunction.DCopyDirectorysub(source,dest:string):boolean;
begin
//2
 if directoryexists(source) then
     begin
         if not directoryexists(dest) then
            ForceDirectories(dest);
         result:=Dir(source,dest,'copy');
     end else
         begin
             result:=false;
         end;
end;
///////////////////////////////////////
Function TMyfunction.DCopyDirectorynul(source,dest:string):boolean;
//3
//目錄復制,將原目錄中的所有文件復制到目標目錄中,且在
//目標目錄中不生成原目錄名.
    var
      Search : TSearchRec;
      Rec    : word;
Begin
      result:=false;
      try
      Source := IncludeTrailingBackslash(Source);
      dest   := IncludeTrailingBackslash(Dest);
      Rec := FindFirst(Source + '*.*', faAnyFile, Search);
      While Rec = 0 Do
      Begin
        If Search.Name[1] <> '.' Then
        Begin
          If (Search.Attr And faDirectory) = faDirectory Then
          Begin
            Windows.CreateDirectory(PChar(Dest+Search.Name), nil);
            FileSetAttr(Dest+Search.Name, FileGetAttr(Source+Search.Name));
            DCopyDirectorynul(Source+ Search.Name, Dest+ Search.Name);
          end
          Else
          Begin
            CopyFile(PChar(Source+ Search.Name),PChar(Dest+ Search.Name), True);
            FileSetAttr(Dest+ Search.Name, FileGetAttr(Source+ Search.Name));
            Application.ProcessMessages;
          end;
        end;
        Rec := FindNext(Search);
      end;
      FindClose(Search);
      result:=true;
      except
      end;
end;
///////////////////////////////////////
Function TMyfunction.DMoveDirectory(source,dest:string):boolean;
begin
//4
 if directoryexists(source) then
     begin
         if not directoryexists(dest) then
            ForceDirectories(dest);
         result:=Dir(source,dest,'cut');
     end else
         begin
             result:=false;
         end;
end;
///////////////////////////////////////
Function TMyfunction.DDeleteDirectory(source:string):boolean;
var
//5
   lpFileOp: TSHFileOpStruct;
begin
   with lpFileOp do
     begin
     Wnd := application.Handle;
     wFunc := FO_DELETE;
     pFrom := pchar(source + #0);//此為要刪除的文件或目錄,支持*、?
     pTo := nil;
     fFlags := FOF_noconfirmation;
     hNameMappings := nil;
     lpszProgressTitle := nil;
     fAnyOperationsAborted := True;
   end;
if SHFileOperation(lpFileOp) <> 0 then
//   ShowMessage('刪除失敗,請查實。');
end;
///////////////////////////////////////
Function TMyfunction.DFindDirectory(source:string;findout:tstringlist):boolean;
var
//6
//查找所選目錄下的所有子目錄
 sr: TSearchRec;
begin
Source := IncludeTrailingBackslash(Source);
 if FindFirst(source + '*.*', faDirectory, sr) = 0 then
   begin
     repeat
       if ((sr.Attr and faDirectory) > 0) and (sr.Name <> '.') and (sr.Name <> '..') then
         begin
           findout.Add(sr.Name);
           //a.Add(source + sr.Name);
         end;
     until FindNext(sr) <> 0;
     FindClose(sr);
   end;
end;
///////////////////////////////////////
Function TMyfunction.FFileSearch(Filepath,Ext:string;findout:tstringlist;Subdir:boolean):boolean;
var
//7
 sr: TSearchRec;
 a,b,c:tstringlist;
 i:integer;
begin
{遞歸查找指定目錄下的所有文件
pathname為指定的目錄,格式為: 'c:\a';
filename為要查找的文件名,支持通配符號
nt為是否查找子目錄,當為 true時 會自動查找 pathname的子目錄。
返回值為查找結果字符串
}
a:=tstringlist.Create;
b:=tstringlist.Create;
c:=tstringlist.Create;
DFindDirectory(filepath,c);
application.ProcessMessages;
filepath:=IncludeTrailingBackslash(filepath);
   if FindFirst(filepath+ext, faAnyFile, sr) = 0 then
    begin
     if (sr.Name = '.') or (sr.Name = '..') then
     else
        if (sr.Attr and faDirectory)=0 then
            b.Add(filepath+sr.name); //文件
        //else
            //a.Add(filepath+sr.name);
     while FindNext(sr) = 0 do
       begin
          //showmessage(sr.Name);
          application.ProcessMessages;
          if (sr.Name = '.') or (sr.Name = '..') then
          else
             if (sr.Attr and faDirectory)=0 then
                 b.Add(filepath+sr.name);
            // else
            //     a.Add(filepath+sr.name);
       end;
    FindClose(SR);
    application.ProcessMessages;
    end;
   // showmessage(c.text);
  if (trim(c.text)<>'') and (Subdir) then
  for i:=0 to c.Count-1 do
    begin
      if directoryexists(filepath+c[i]) then
        begin
         //if nt then
           application.ProcessMessages;
           FFileSearch(filepath+c[i],ext,findout,Subdir);
           application.ProcessMessages;
        end
      else
        begin
          application.ProcessMessages;
          //b.Add(pathname+'\'+a[i]);
        end;
    end;
for i:=0 to b.Count-1 do
   begin
       if trim(b[i])<>'' then
           a.Add(b[i]);
   end;
//a:=a+b;
//result:=trim(a.Text);
findout.Text:=findout.text+trim(a.Text);
a.free;
c.Free;
b.Free;
end;
///////////////////////////////////////
Function TMyfunction.SSetAdoaccess(Accessfile,passwd:string):string;
begin
//8
result:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
        +trim(Accessfile)+';Persist Security Info=False'
        +';Jet OLEDB:Database Password='+trim(passwd);
end;
Function TMyfunction.SSetAdosqlserver(Host,User,Passwd,Database:string):string;
begin
//9
host:=trim(host);
user:=trim(user);
passwd:=trim(passwd);
database:=trim(database);
result:='Provider=SQLOLEDB.1;Password='+passwd
        +';Persist Security Info=True;User ID='+user
        +';Initial Catalog='+database+';Data Source='+host;

end;
///////////////////////////////////////
Function TMyfunction.SSetAdosqlserver(Configfile:string):string;
var
//10
ini:tinifile;
a:tstringlist;
pass,username,host,db:string;
begin
a:=tstringlist.create;
if trim(configfile)<>'' then
Ini := TIniFile.Create(Configfile)
else
ini :=tinifile.Create(extractfilepath(paramstr(0))+'config.ini');
try
Ini.ReadSectionValues('Config',a);
username:=copy(a[0],10,100);
pass:=copy(a[1],10,100);
host:=copy(a[2],6,100);
db:=copy(a[3],10,100);
result:='Provider=SQLOLEDB.1;'+
        'Password='+pass+
        ';Persist Security Info=True;'+
        'User ID='+username+
        ';Initial Catalog='+db+
        ';Data Source='+host;
finally
a.Free;
ini.Free;
end;
end;
///////////////////////////////////////
function TMyfunction.WRunproc(filepaths:string):boolean;
//11
begin
 result:=true;
 ShellExecute(application.Handle ,'open',pchar(filepaths),nil,nil,SW_ShowNormal);
end;
///////////////////////////////////
function  TMyfunction.WAskinfo(title:string;body:string):boolean;
//12
begin
if  application.MessageBox(pchar(body),pchar(title),mb_yesno)=mryes  then
  begin
  result:=true
  end
else
  begin
  result:=false;
  end;
end;

Function TMyfunction.WWriteerrorlog(filename:string;data:string;notime:boolean=false):boolean;
// 13
//寫記錄文件,filename:文件絕對路徑和文件名,data:記錄內容
var
err:textfile;
begin
try
filename:=trim(filename);
assignfile(err,filename);
if fileexists(filename) then
 begin
  append(err);
 end
else
 begin
  rewrite(err);
 end;
if notime then
writeln(err,data)
else
writeln(err,data+'   '+datetimetostr(now()));
closefile(err);
result:=true;

except
on e:exception do
 begin
  // e.Message
 end;
end;
end;
///////////////////////////////////
function TMyfunction.DGetdir:string ;
var
s:string;
begin
if selectdirectory('','',s) then
  result:=trim(s);
end;
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产麻豆9l精品三级站| 91美女精品福利| www.亚洲激情.com| 欧美高清www午色夜在线视频| 久久精品夜色噜噜亚洲aⅴ| 亚洲国产成人精品视频| 国产一区二区三区精品欧美日韩一区二区三区 | 99国内精品久久| 日韩欧美在线不卡| 亚洲国产精品欧美一二99| 成人午夜免费视频| 久久一夜天堂av一区二区三区 | 色又黄又爽网站www久久| 久久久久久久久久久电影| 亚洲成人激情自拍| 色哟哟在线观看一区二区三区| 久久日韩精品一区二区五区| 丝袜美腿高跟呻吟高潮一区| 色婷婷亚洲综合| 综合久久久久久| 成人激情校园春色| 2020国产精品久久精品美国| 日本不卡一区二区| 欧美午夜电影在线播放| 亚洲永久免费av| 欧美影视一区在线| 玉足女爽爽91| 在线视频欧美精品| 亚洲一区二区三区在线播放| 色婷婷香蕉在线一区二区| 亚洲人成网站影音先锋播放| 91在线观看视频| 日韩一区在线看| 91电影在线观看| 亚洲电影在线播放| 欧美人成免费网站| 人人超碰91尤物精品国产| 6080yy午夜一二三区久久| 五月婷婷激情综合网| 欧美日韩一区二区三区在线看| 亚洲高清免费观看高清完整版在线观看| 色噜噜狠狠一区二区三区果冻| 一区二区成人在线观看| 欧美视频一区二区三区| 日韩**一区毛片| 日韩一二三区不卡| 精品亚洲欧美一区| 国产欧美一区二区三区在线老狼| 成人激情黄色小说| 亚洲精品免费播放| 91.成人天堂一区| 国产一区二区在线观看视频| 中文字幕成人av| 欧美三级韩国三级日本一级| 日产精品久久久久久久性色| www久久久久| 午夜视频在线观看一区二区三区| 国产区在线观看成人精品| 欧美日韩视频第一区| 99久久99久久久精品齐齐| 国产一区二区三区蝌蚪| 精品国产乱子伦一区| 亚洲第一会所有码转帖| 精品国产一区二区亚洲人成毛片 | 欧美日韩一级大片网址| 狠狠久久亚洲欧美| 不卡电影免费在线播放一区| 国产精品久久久久一区| 色又黄又爽网站www久久| 青青草原综合久久大伊人精品 | 成人免费高清在线| 亚洲国产欧美在线人成| 久久精品视频网| 欧美日韩亚洲丝袜制服| 国产成人在线视频播放| 午夜电影一区二区三区| 精品久久久网站| 99国内精品久久| 天天综合网 天天综合色| 亚洲国产精品成人综合色在线婷婷| 欧美日韩一区二区欧美激情| 国产精品1024| 亚洲国产毛片aaaaa无费看| 久久久午夜精品| 这里只有精品99re| 色伊人久久综合中文字幕| 国产传媒日韩欧美成人| 奇米777欧美一区二区| 亚洲日本护士毛茸茸| 久久亚洲欧美国产精品乐播| 欧美日韩电影在线| 91在线精品一区二区| 精品亚洲欧美一区| 亚洲国产精品一区二区久久 | 午夜视频在线观看一区二区三区| 国产精品天干天干在线综合| 日韩精品一区二区三区在线观看| 欧美色欧美亚洲另类二区| 91在线视频播放地址| www.在线欧美| 国产99一区视频免费| 免费av网站大全久久| 一区二区免费视频| 久久久激情视频| 亚洲精品在线观看视频| 欧美日韩一级片网站| 成人国产免费视频| 成人高清视频在线观看| 国产中文字幕一区| 日本女人一区二区三区| 亚洲成av人片在线观看| 亚洲欧洲国产专区| 国产精品久久久久一区| 国产日韩欧美高清| 国产视频一区不卡| 日本一区二区三区免费乱视频| 久久精品人人爽人人爽| 国产日韩精品视频一区| 国产清纯白嫩初高生在线观看91 | 肉色丝袜一区二区| 青青草国产精品亚洲专区无| 日日夜夜精品视频免费 | 亚洲理论在线观看| 亚洲女同一区二区| 亚洲一二三专区| 午夜精品久久一牛影视| 日韩精品电影在线| 久久不见久久见免费视频7| 久久97超碰国产精品超碰| 国内精品伊人久久久久av影院 | 国产日韩欧美制服另类| 日韩一区日韩二区| 亚洲自拍偷拍综合| 日本在线播放一区二区三区| 极品尤物av久久免费看| 成人亚洲一区二区一| 日本道色综合久久| 91国模大尺度私拍在线视频| 欧美日韩www| 日韩一卡二卡三卡国产欧美| 久久综合九色综合97婷婷| 国产精品久久久久婷婷二区次| 一区av在线播放| 美女视频黄久久| 不卡的av在线播放| 精品视频在线免费看| 2021中文字幕一区亚洲| 最新国产成人在线观看| 琪琪久久久久日韩精品| 成人av网在线| 欧美丰满高潮xxxx喷水动漫| 久久久青草青青国产亚洲免观| 日韩一区在线免费观看| 麻豆成人在线观看| 一本色道久久综合精品竹菊| 精品久久久久久久久久久久久久久久久 | 欧美在线三级电影| 欧美高清dvd| 欧美不卡在线视频| 亚洲三级电影全部在线观看高清| 麻豆精品一区二区三区| 91一区二区在线观看| 337p日本欧洲亚洲大胆色噜噜| 亚洲人成伊人成综合网小说| 美女国产一区二区| heyzo一本久久综合| 日韩欧美国产综合在线一区二区三区| 国产精品美女久久久久久久网站| 色琪琪一区二区三区亚洲区| 日韩亚洲国产中文字幕欧美| 亚洲欧洲精品成人久久奇米网| 美女视频一区二区三区| 91免费国产视频网站| 日韩一级免费观看| 亚洲综合在线免费观看| 成人综合日日夜夜| 久久这里只有精品视频网| 亚洲妇女屁股眼交7| 色婷婷综合久久久久中文| 欧美经典一区二区| 国产一区欧美日韩| 欧美成人精品1314www| 婷婷综合久久一区二区三区| 成人动漫一区二区在线| 国产天堂亚洲国产碰碰| 激情小说亚洲一区| 日韩一卡二卡三卡| 日本午夜精品视频在线观看| 欧美日韩国产美| 亚洲香蕉伊在人在线观| 欧美影视一区二区三区| 亚洲女人****多毛耸耸8| 成人一区二区三区在线观看| 国产欧美日韩卡一| 国产成人免费高清| 国产精品久久久久四虎| jlzzjlzz亚洲女人18| 亚洲视频一区二区免费在线观看| 国产大陆精品国产| 欧美高清一级片在线观看|