Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
//---------------------------------------------------------------------------
#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