Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
17.04.2013
Размер:
15.17 Кб
Скачать
//---------------------------------------------------------------------------
#include <string.h>
#include <SysUtils.hpp>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <dir.h>
#include <string.h>
#include <math.h>
#include <conio.h>
#include <dos.h>
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
bool n,p;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::RadioGroup1Click(TObject *Sender)
{
 if(RadioGroup1->ItemIndex==0)
     {PAvtomatVod->Visible=true;
      PRuchVod->Visible=false;
      PVspomVod->Visible=false;
      DriveComboBox1->Color=clWhite;
      DirectoryListBox1->Color=clWhite;
      DriveComboBox1->Enabled=true;
      DirectoryListBox1->Enabled=true;
      }
 if(RadioGroup1->ItemIndex==1)
     {PAvtomatVod->Visible=true;
      PRuchVod->Visible=true;
      PVspomVod->Visible=true;
      DriveComboBox1->Color=clMenu;
      DirectoryListBox1->Color=clMenu;
      DriveComboBox1->Enabled=false;
      DirectoryListBox1->Enabled=false;
      }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DriveComboBox1Change(TObject *Sender)
{
DirectoryListBox1->Drive=DriveComboBox1->Drive;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::BVodAvtClick(TObject *Sender)
{
  struct ffblk X;         // Ввод данных автоматически
  int done;
  int drive;
  AnsiString d,m,a,dat;
  Query1->Active=false;
  DataSource1->DataSet=Table1;
  Table1->Active=false;
  Table1->Active=true;
  if(CBObemRazmAvt->Text==""||MEObemAvt->Text=="")
     {
       ShowMessage("Введите объем носителя");
       return;
      }
  Table1->Insert();
  drive=DriveComboBox1->Drive;
  setdisk(drive);
  done = findfirst("*.*",&X,FA_SYSTEM|FA_DIREC | FA_HIDDEN| FA_ARCH | FA_RDONLY);
  while (!done)
     {
         if ((X.ff_attrib==FA_DIREC) ||  (AnsiStrScan(X.ff_name,'.')==NULL))
            {
              done = findnext(&X);
              continue;
            }
         if (((AnsiString)X.ff_name==".")||((AnsiString)X.ff_name==".."))
             {
              done = findnext(&X);
              continue;
             }
        else{
             Table1->Insert();
             try{
                 Table1->FieldByName("Type_volume")->AsFloat=StrToFloat(MEObemAvt->Text);
                 }
            catch(...){
                ShowMessage("Введено неверное значение");
                return;
                      }
             Table1->FieldByName("File_name")->AsString=((AnsiString)X.ff_name);
             Table1->FieldByName("File_size")->AsFloat=(X.ff_fsize);
             Table1->FieldByName("File_size_razm")->AsString=razmer(X.ff_fsize);
             d=day(X.ff_fdate);
             m=month(X.ff_fdate);
             a=age(X.ff_fdate);
             dat=(d+"."+m+"."+a);
             Table1->FieldByName("File_data")->Value=StrToDate(dat);
             Table1->FieldByName("Type")->AsString=CBTypeAvt->Text;
             Table1->FieldByName("Firma")->AsString=CBFirmaAvt->Text;
             Table1->FieldByName("Description")->AsString=MVodKomentarAvt->Text;
             Table1->FieldByName("Type_volume_razm")->AsString=CBObemRazmAvt->Text;
             Table1->Post();
             done = findnext(&X);
          }
   }
Table1->Active=true;
}



//---------------------------------------------------------------------------
void __fastcall TForm1::CBFirmaAvtEnter(TObject *Sender)
{                          //Сортировка по имени фирм и
   Table1->Active=false;   // исключение совпадений одинаковых
   Query1->Close();        // имен фирм с заносам их названий в копонент
   Query1->SQL->Clear();   // "Фирма-изготовитель"
   Query1->SQL->Add("Select distinct Firma from bd4 order by firma ");
   Query1->Active=true;
   CBFirmaAvt->Items->Clear();
   Query1->First();

  while( !Query1->Eof)
   {
    CBFirmaAvt->Items->Add(Query1->FieldByName("Firma")->AsString);
    Query1->Next();
   }
   Query1->Close();
   Query1->Active=false;
   DataSource1->DataSet=Table1;
   Table1->Active=true;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::CBFirmaREnter(TObject *Sender)
{
   Table1->Active=false;
   Query1->Close();
   Query1->Active = false;
   Query1->SQL->Clear();
   Query1->SQL->Add("Select distinct Firma from bd4 order by firma ");

   Query1->Active = true;
   CBFirmaR->Items->Clear();
   Query1->First();

  while( !Query1->Eof)
   {
    CBFirmaR->Items->Add(Query1->FieldByName("Firma")->AsString);
    Query1->Next();
   }
   Query1->Open();;
   Query1->Close();
   Query1->Active=false;
   Query1->Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BVodRClick(TObject *Sender)
{DataSource1->DataSet=Table1;
 Table1->Active=true;
 Nam(ENameR->Text);          //ВВод данных в базу вручную
 Data(MEDataR->Text);
 if(MESizeR->Text=="")
 return;
 if(CBSizeRazmR->Text=="")
 return;
 if(CBFirmaR->Text=="")
 return;
 if(MEObemR->Text=="")
 return;
 if(CBRazmR->Text=="")
 return;

if (n==true||p==true)
    { n=false;
      p=false;
     return;
    }
else if(n==false&&p==false)
{ Table1->Insert();
 try{
     Table1->FieldByName("Type_Volume")->AsFloat=StrToFloat(MEObemR->Text);
     }
      catch(...)
     {
      ShowMessage("Введено неверное значение");
      return;
     }

 Table1->FieldByName("File_size")->AsString=MESizeR->Text;
 Table1->FieldByName("Type_Volume")->AsString=MEObemR->Text;
 Table1->FieldByName("File_size_razm")->AsString=CBSizeRazmR->Text;
 Table1->FieldByName("Type")->AsString=CBTypeR->Text;

 Table1->FieldByName("Type_volume_razm")->AsString=CBRazmR->Text;
 Table1->FieldByName("Firma")->AsString=CBFirmaR->Text;
 Table1->FieldByName("Description")->AsString=MKomentrR->Text;
 Table1->FieldByName("File_name")->AsString=ENameR->Text;
 Table1->FieldByName("File_data")->AsString=MEDataR->EditText;
 Table1->Post();
 }

}
//---------------------------------------------------------------------------





void __fastcall TForm1::Table1CalcFields(TDataSet *DataSet) //Создание вычисляемого поля
{                                                           // с вычисление для него данных
 if(Table1->FieldValues["File_size"]<1024.0)
     Table1->FieldValues["File_size_new"]=(Table1->FieldValues["File_size"]);

 if (Table1->FieldValues["File_size"]>=(1024.0*1024.0))
     Table1->FieldValues["File_size_new"]=(Table1->FieldValues["File_size"]/(1024.0*1024.0));


 if((Table1->FieldValues["File_size"]<(1024.0*1024.0))&&(Table1->FieldValues["File_size"]>=1024.0))
     Table1->FieldValues["File_size_new"]=((float)Table1->FieldValues["File_size"]/1024.0);


}
//---------------------------------------------------------------------------

void __fastcall TForm1::TSPoiskEnter(TObject *Sender)
{
 Table1->Active=false;
 DataSource1->DataSet=Query2;
 Query2->Close();
 DBMemo1->DataSource=DataSource1;;
 Query2->Active=false;
}
//---------------------------------------------------------------------------




void __fastcall TForm1::Query2CalcFields(TDataSet *DataSet)
{
 if(Query2->FieldValues["File_size"]<1024.0)
     Query2->FieldValues["File_size_new"]=(Query2->FieldValues["File_size"]);

 if (Query2->FieldValues["File_size"]>=(1024.0*1024.0))
      Query2->FieldValues["File_size_new"]=(Query2->FieldValues["File_size"]/(1024.0*1024.0));


 if((Query2->FieldValues["File_size"]<(1024.0*1024.0))&&(Query2->FieldValues["File_size"]>=1024.0))
      Query2->FieldValues["File_size_new"]=((float)Query2->FieldValues["File_size"]/1024.0);

}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn4Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------


void __fastcall TForm1::EFileNamePChange(TObject *Sender)
{
char bufer[256];                   //Поиск по имени файла и по звездочке
  AnsiString dat ,nam_new,text;
  DataSource1->DataSet=Query2;
  Query2->Close();
  if(EFileNameP->Modified==true)
    { if(EFileNameP->Text=="*.*")
         {
           Query2->SQL->Clear();
           Query2->SQL->Add("SELECT * FROM bd4 ");
           Query2->Open();
          }
         else { if (AnsiStrScan(EFileNameP->Text.c_str(),'*')!=NULL)
                   {  sprintf(bufer,"%s",EFileNameP->Text.c_str());
                      char  *ptr = strchr(bufer,'*');
                      bufer[ptr-bufer]='%';
                      text=((AnsiString)bufer);
                      Query2->SQL->Clear();
                      TParam *newParam5=Query2->Params->CreateParam(ftString, "File_name",ptInput);
                      newParam5->AsString=text;
                      Query2->SQL->Add("SELECT * FROM bd4 WHERE File_name LIKE :dat");
                      Query2->Params->ParamByName("dat")->AsString=text;
                      Query2->Open();
                    }
               else {
                     Query2->SQL->Clear();
                     TParam *newParam5=Query1->Params->CreateParam(ftString, "File_name",ptInput);
                     newParam5->AsString=EFileNameP->Text;
                     Query2->SQL->Add("SELECT * FROM bd4 WHERE File_name LIKE :dat");
                     Query2->Params->ParamByName("dat")->AsString=EFileNameP->Text;
                     Query2->Open();
                     }
               }
     }

}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
 AnsiString x;   //Поиск по размеру файла
 AnsiString raz;
 float siz=0,siz2=0;
 Table1->Close();
 DataSource1->DataSet=Query2;
 Query2->Close();
 Query2->SQL->Clear();
 if(CBUslovieSizeP->Text=="равен")
  {TParam *newParam2=Query2->Params->CreateParam(ftFloat, "File_size",ptInput);
   newParam2->AsFloat=siz2;
  }

 TParam *newParam1=Query2->Params->CreateParam(ftFloat, "File_size",ptInput);
 newParam1->AsFloat=siz;
 TParam *newParam=Query2->Params->CreateParam(ftString, "File_size_razm",ptInput);
 newParam->AsString =raz;
 if(CBUslovieSizeP->Text=="больше")
    Query2->SQL->Add("SELECT * FROM bd4 WHERE (File_size>:siz) AND (File_size_razm>=:raz)");
 if(CBUslovieSizeP->Text=="меньше")
    Query2->SQL->Add("SELECT * FROM bd4 WHERE (File_size<:siz) AND (File_size_razm<=:raz)");
 if(CBUslovieSizeP->Text=="равен")
    Query2->SQL->Add("SELECT * FROM bd4 WHERE (File_size  BETWEEN :siz AND :siz2) AND (File_size_razm=:raz)");

 if(CBRazmP->Text=="Мбайт")
      { Query2->Params->ParamByName("raz")->AsString=CBRazmP->Text;
        Query2->Params->ParamByName("siz")->AsFloat=1024*1024*(StrToFloat(ESizeP->Text));
         if(CBUslovieSizeP->Text=="равен")
            {
              Query2->Params->ParamByName("siz2")->AsFloat=1024*1024*(StrToFloat(ESizeP->Text)*1.0001);
              Query2->Params->ParamByName("siz")->AsFloat=1024*1024*(StrToFloat(ESizeP->Text)*0.997);
            }
           Query2->Open();
      }

  if(CBRazmP->Text=="Кбайт")
      {
       Query2->Params->ParamByName("raz")->AsString=CBRazmP->Text;
       Query2->Params->ParamByName("siz")->AsFloat=1024*(StrToFloat(ESizeP->Text));
       if(CBUslovieSizeP->Text=="равен")
          {
           Query2->Params->ParamByName("siz2")->AsFloat=1024*(StrToFloat(ESizeP->Text)*1.005);
           Query2->Params->ParamByName("siz")->AsFloat=1024*(StrToFloat(ESizeP->Text)*0.995);
          }
       Query2->Open();
      }
   if(CBRazmP->Text=="Байт")
      {
       Query2->Params->ParamByName("raz")->AsString=CBRazmP->Text;
       Query2->Params->ParamByName("siz")->AsFloat=StrToFloat(ESizeP->Text);
       if(CBUslovieSizeP->Text=="равен")
          {
           Query2->Params->ParamByName("siz2")->AsFloat=(StrToFloat(ESizeP->Text));
           Query2->Params->ParamByName("siz")->AsFloat=(StrToFloat(ESizeP->Text));
          }
       Query2->Open();
       Query2->Active=true;
      }


}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
                                  //Поиск по дате создания файла
AnsiString dat;
 Table1->Active=false;
 DataSource1->DataSet=Query2;
 Query2->Close();
 Query2->SQL->Clear();
 if(CBUslDatP->Text=="до")
   {TParam *newParam=Query2->Params->CreateParam(ftDate, "File_data",ptInput);
   newParam->AsDate=Edit1->Text;
   Query2->SQL->Add("SELECT * FROM bd4 WHERE File_data<=:dat");
   Query2->Params->ParamByName("dat")->AsDate=Edit1->Text;
   Query2->Open();
  }
 if(CBUslDatP->Text=="после")
    { TParam *newParam=Query2->Params->CreateParam(ftDate, "File_data",ptInput);
      newParam->AsDate=Edit1->Text;
      Query2->SQL->Add("SELECT * FROM bd4 WHERE File_data>=:dat");
     Query2->Params->ParamByName("dat")->AsDate=Edit1->Text;
     Query2->Open();
    }
 if(CBUslDatP->Text=="равной")
   { TParam *newParam=Query2->Params->CreateParam(ftDate, "File_data",ptInput);
      newParam->AsDate=Edit1->Text;
      Query2->SQL->Add("SELECT * FROM bd4 WHERE File_data=:dat");
      Query2->Params->ParamByName("dat")->AsDate=Edit1->Text;
      Query2->Open();
    }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TSRedaktEnter(TObject *Sender)
{
 Query2->Close();
 Query1->Close();
 DataSource1->DataSet=Table1;
 Table1->Active=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TSRedaktShow(TObject *Sender)
{
  Query2->Close();
 Query1->Close();
 DataSource1->DataSet=Table1;
 Table1->Active=true;
 DBGrid1->ReadOnly=false;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{
  while( !Table1->Eof) //Удаления записей из базы
   {
    Table1->First();
    Table1->Delete();
    Table1->Next();
   }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TSVodShow(TObject *Sender)
{
 Query2->Close();
 Query1->Close();
 DataSource1->DataSet=Table1;
 Table1->Active=true;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::TSPoiskShow(TObject *Sender)
{
 Table1->Active=false;
 DataSource1->DataSet=Query2;
 Query2->Open();
 Query1->Close();
}
//---------------------------------------------------------------------------

Соседние файлы в папке Programa