⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zhtc.pas

📁 一个文件管理的程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit zhtc;

interface

uses
  //Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  //Dialogs, ComCtrls, StdCtrls, Buttons, DB, ADODB;
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, Buttons, ComCtrls, StdCtrls, ActnList, MConnect,
  ObjBrkr, Grids, DBGrids, jpeg, ExtCtrls, ImgList;
type
  TForm3 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    TreeView1: TTreeView;
    SpeedButton2: TSpeedButton;
    ADODataSet1: TADODataSet;
    DataSource1: TDataSource;
    ADODataSet2: TADODataSet;
    DataSource2: TDataSource;
    DataSource3: TDataSource;
    ADODataSet3: TADODataSet;
    ADODataSet4: TADODataSet;
    DataSource4: TDataSource;
    ADODataSet5: TADODataSet;
    DataSource5: TDataSource;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    Image7: TImage;
    ImageList1: TImageList;
    procedure FormShow(Sender: TObject);
    procedure TreeView1Click(Sender: TObject);
    procedure Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image2Click(Sender: TObject);
    procedure Image6Click(Sender: TObject);
    procedure Image4Click(Sender: TObject);
    procedure Image3MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image4MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image5MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image6MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image7MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;
  edit:string;
implementation

{$R *.dfm}

procedure TForm3.FormShow(Sender: TObject);
var
i,j,k,d,f:integer;
catnode1,catnode2,catnode3,catnode4,catnode5:ttreenode;
begin//(1-1)
  adodataset1.Active:=false;
  adodataset1.CommandText:='select distinct name1 from zhutc order by name1 desc';
  adodataset1.Active:=true;
  adodataset5.Active:=false;
  adodataset5.Active:=true;
  adodataset1.First;
  catnode1:=treeview1.Items.GetFirstNode;
  treeview1.Selected:=catnode1;
  treeview1.Selected.Delete;
  treeview1.Items.AddFirst(nil,'根');
for i:=0 to adodataset1.RecordCount-1 do    //在treeview 中显示主题结构
  begin   //(1-2)
   if (trim(adodataset1.FieldValues['name1'])<>NULL)and (trim(adodataset1.FieldValues['name1'])<>'') then
    begin   //(1-3)
     catnode1:=treeview1.Items.GetFirstNode;      //  添加第一个字段
     treeview1.Items.AddChildFirst(catnode1,adodataset1.FieldValues['name1']);
     adodataset2.Filter:='name1='''+adodataset1.FieldValues['name1']+'''';
     adodataset2.Filtered:=true;
     adodataset2.First;
     if  adodataset2.RecordCount<>0 then
     begin//(2-1)                            //添加第二个字段
     for j:=0 to adodataset2.RecordCount-1 do
      begin//(2-2)
       if (adodataset2.FieldValues['name2']<>NULL) and (trim(adodataset2.FieldValues['name2'])<>'') then
        begin//(2-3)
         catnode2:=catnode1.GetNext;
         treeview1.Items.AddChildFirst(catnode2,adodataset2.FieldValues['name2']);
         adodataset3.Filter:='name1='''+adodataset2.FieldValues['name1']+'''and name2='''+adodataset2.FieldValues['name2']+'''';
         adodataset3.Filtered:=true;
         adodataset3.First;
         if adodataset3.RecordCount<>0 then
          begin//(3-1)                                  //添加第三个字段
           for k:=0 to adodataset3.RecordCount-1 do
           begin//(3-2)
            if (adodataset3.FieldValues['name3']<>NULL) and (trim(adodataset3.FieldValues['name3'])<>'') then
             begin//(3-3)
              catnode3:=catnode2.GetNext;
              treeview1.Items.AddChildFirst(catnode3,adodataset3.FieldValues['name3']);
              adodataset4.Filter:='name1='''+adodataset3.FieldValues['name1']+'''and name2='''+adodataset3.FieldValues['name2']+'''and name3='''+adodataset3.FieldValues['name3']+'''';
              adodataset4.Filtered:=true;
              adodataset4.First;
              if adodataset4.RecordCount<>0 then
              begin//(4-1)
               for d:=0 to adodataset4.RecordCount-1 do
               begin//(4-2)
                if (adodataset4.FieldValues['name4']<>NULL) and (trim(adodataset4.FieldValues['name4'])<>'') then
                 begin//(4-3)
                  catnode4:=catnode3.GetNext;
                  treeview1.Items.AddChildFirst(catnode4,adodataset4.FieldValues['name4']);
                  adodataset5.Filter:='name1='''+adodataset4.FieldValues['name1']+'''and name2='''+adodataset4.FieldValues['name2']+'''and name3='''+adodataset4.FieldValues['name3']+'''and name4='''+adodataset4.FieldValues['name4']+'''';
                  adodataset5.Filtered:=true;
                  adodataset5.First;
                  if adodataset5.RecordCount<>0 then
                   begin//(5-1)
                    for f:=0 to adodataset5.RecordCount-1 do
                   begin//(5-2)
                   if (adodataset5.FieldValues['name5']<>NULL) and (trim(adodataset5.FieldValues['name5'])<>'') then
                    begin//(5-3)
                    catnode5:=catnode4.GetNext;
                    treeview1.Items.AddChildFirst(catnode5,adodataset5.FieldValues['name5']);
                    end;//(5-3)
                 adodataset5.Next;
                end;//(5-2)
               end;//(5-1)
               end;//(4-3)
              adodataset4.Next;
             end;//(4-2)
            end;//(4-1)
           end;//(3-3)
           adodataset3.Next;
          end;//(3-2)
         end;//(3-1)
        end;//(2-3)
      adodataset2.Next;
      end;//(2-2)
    end;//(2-1)
   end;//(1-3)
   adodataset1.Next;
  end;//(1-2)
end;//(1-1)
procedure TForm3.TreeView1Click(Sender: TObject);
var
s1,s2,s3,s4,s5,s6:string;
begin
 begin
   edit1.Text:='';
   edit4.Text:='';
   edit5.Text:='';
   edit6.Text:='';
   edit7.Text:='';
   edit8.Text:='';
   edit2.Text:=treeview1.Selected.Text;
   edit:=edit2.Text;
 try     //1
  s1:=treeview1.Selected.Parent.Text;
 except
    edit1.Text:='';
    edit4.Text:='';
    edit5.Text:='';
    edit6.Text:='';
    edit7.Text:='';
    edit8.Text:='';
    edit3.Text:=treeview1.Selected.Text;
    exit;
 end;
  try     //2
   s2:=treeview1.Selected.Parent.Parent.Text;
 except
   edit1.Text:='';
   edit3.Text:='';
   edit5.Text:='';
   edit6.Text:='';
   edit7.Text:='';
   edit8.Text:='';
   edit4.Text:=treeview1.Selected.Text;
   exit;
 end;
  try     //3
   s3:=treeview1.Selected.Parent.Parent.Parent.Text;
 except
   edit1.Text:='';
   edit3.Text:='';
   edit4.Text:='';
   edit6.Text:='';
   edit7.Text:='';
   edit8.Text:='';
   edit5.Text:=treeview1.Selected.Text;
   exit;
 end;
  try     //4
   s4:=treeview1.Selected.Parent.Parent.Parent.Parent.Text;
 except
    edit1.Text:='';
    edit3.Text:='';
    edit4.Text:='';
    edit5.Text:='';
    edit7.Text:='';
    edit8.Text:='';
    edit6.Text:=treeview1.Selected.Text;
    exit;
 end;
  try     //5
   s5:=treeview1.Selected.Parent.Parent.Parent.Parent.Parent.Text;
 except
    edit1.Text:='';
    edit3.Text:='';
    edit4.Text:='';
    edit5.Text:='';
    edit6.Text:='';
    edit8.Text:='';
    edit7.Text:=treeview1.Selected.Text;
    exit;
  end;
 try     //6
   s6:=treeview1.Selected.Parent.Parent.Parent.Parent.Parent.Parent.Text;
 except
    edit1.Text:='';
    edit3.Text:='';
    edit4.Text:='';
    edit5.Text:='';
    edit6.Text:='';
    edit7.Text:='';
    edit8.Text:=treeview1.Selected.Text;
    exit;
  end;
 end;
end;
procedure TForm3.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  edit2.Text:='';
end;
procedure TForm3.Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  image4.Visible:=false;
  image5.Visible:=true;
end;

procedure TForm3.Image2Click(Sender: TObject);
var                          //对树状结构进行删除操作
i,j,k,h,t,q,w,e,r:integer;
begin//(1-1)
 if (trim(edit2.Text)='') and (trim(edit1.Text)='') then
  begin
   showmessage('请选择要删除的主题词!');
   exit;
  end;
 if messagedlg('数据删除不可恢复是否要删除数据?',mtwarning,[mbyes,mbno],1)=mryes then
  begin
   if trim(edit8.Text)<>'' then                  //5
    begin
     adodataset1.Active:=false;
     adodataset1.CommandText:='select * from total where zhutc like '+''''+treeview1.Selected.Parent.Parent.Parent.Parent.Text+treeview1.Selected.Parent.Parent.Parent.Text+treeview1.Selected.Parent.Parent.Text+treeview1.Selected.Parent.Text+edit8.text+'%'+'''';
     adodataset1.Active:=true;
     adodataset1.First;
     for i:=0 to adodataset1.RecordCount-1 do
      begin
       deletefile(adodataset1.Fields[4].AsString); //按指定的文件路径删除文件
                          //删除主数据库
       adodataset1.Edit;
       adodataset1.Delete;
       adodataset1.Next;
      end;
        //删除空目录
      removedir(getcurrentdir+'\'+treeview1.Selected.Parent.Parent.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Text+'\'+edit8.Text);
      adodataset5.Filter:='name1='''+treeview1.Selected.Parent.Parent.Parent.Parent.Text+'''and name2='''+treeview1.Selected.Parent.Parent.Parent.Text+'''and name3='''+treeview1.Selected.Parent.Parent.Text+'''and name4='''+treeview1.Selected.Parent.Text+'''and name5='''+edit8.Text+'''';
      adodataset5.Filtered:=true;
      adodataset5.First;
     for r:=0 to adodataset5.RecordCount-1 do
      begin
       adodataset5.Edit;
       adodataset5.Delete;
       adodataset5.Next;
      end;
   end;
  if trim(edit7.Text)<>'' then                  //4
   begin
    adodataset1.Active:=false;
    adodataset1.CommandText:='select * from total where zhutc like '+''''+treeview1.Selected.Parent.Parent.Parent.Text+treeview1.Selected.Parent.Parent.Text+treeview1.Selected.Parent.Text+edit7.text+'%'+'''';
    adodataset1.Active:=true;
    adodataset1.First;
    for j:=0 to adodataset1.RecordCount-1 do
     begin
      deletefile(adodataset1.Fields[4].AsString); //按指定的文件路径删除文件
      //删除数据库
      adodataset1.Edit;   //(总表)
      adodataset1.Delete;
      adodataset1.Next;
     end;
      removedir(getcurrentdir+'\'+treeview1.Selected.Parent.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Text+'\'+edit7.Text);       //删除空目录
      adodataset5.Filter:='name1='''+treeview1.Selected.Parent.Parent.Parent.Text+'''and name2='''+treeview1.Selected.Parent.Parent.Text+'''and name3='''+treeview1.Selected.Parent.Text+'''and name4='''+edit7.Text+'''';
      adodataset5.Filtered:=true;
      adodataset5.First;
      for r:=0 to adodataset5.RecordCount-1 do
       begin
        adodataset5.Edit;
        adodataset5.Delete;
        adodataset5.Next;
       end;
    end;
   if trim(edit6.Text)<>'' then                   //3
       begin
        adodataset1.Active:=false;
        adodataset1.CommandText:='select * from total where zhutc like '+''''+treeview1.Selected.Parent.Parent.Text+treeview1.Selected.Parent.Text+edit6.text+'%'+'''';
        adodataset1.Active:=true;
        adodataset1.First;
       for h:=0 to adodataset1.RecordCount-1 do
        begin
         deletefile(adodataset1.Fields[4].AsString); //按指定的文件路径删除文件
                                //删除数据库
         adodataset1.Edit;
         adodataset1.Delete;
         adodataset1.Next;
        end;                                                                                                           //删除空目录
       removedir(getcurrentdir+'\'+treeview1.Selected.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Text+'\'+edit6.Text);
       adodataset5.Active:=false;        //删除当前数据库
       adodataset5.Active:=true;
       adodataset5.Filter:='name1='''+treeview1.Selected.Parent.Parent.Text+'''and name2='''+treeview1.Selected.Parent.Text+'''and name3='''+edit6.Text+'''';
       adodataset5.Filtered:=true;
       adodataset5.First;
       for e:=0 to adodataset5.RecordCount-1 do
        begin
         adodataset5.Edit;
         adodataset5.Delete;
         adodataset5.Next;
        end;
      end;
      if trim(edit5.Text)<>'' then                  //2
       begin
        adodataset1.Active:=false;
        adodataset1.CommandText:='select * from total where zhutc like '+''''+treeview1.Selected.Parent.Text+edit5.text+'%'+'''';
        adodataset1.Active:=true;
        adodataset1.First;
       for k:=0 to adodataset1.RecordCount-1 do
        begin
         deletefile(adodataset1.Fields[4].AsString); //按指定的文件路径删除文件
         //删除数据库
         adodataset1.Edit;
         adodataset1.Delete;
         adodataset1.Next;
        end;
       removedir(getcurrentdir+'\'+treeview1.Selected.Parent.Text+'\'+edit5.Text);
       adodataset5.Active:=false;        //删除当前数据库
       adodataset5.Active:=true;
       adodataset5.Filter:='name1='''+treeview1.Selected.Parent.Text+'''and name2='''+edit5.Text+'''';
       adodataset5.Filtered:=true;
       adodataset5.First;
       for w:=0 to adodataset5.RecordCount-1 do
        begin
         adodataset5.Edit;
         adodataset5.Delete;
         adodataset5.Next;
        end;
      end;
   if trim(edit4.Text)<>'' then                   //1
       begin
        adodataset1.Active:=false;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -