📄 find1.~pas
字号:
unit FIND1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, jpeg;
type
Tfindform = class(TForm)
BitBtn3: TBitBtn;
BitBtn1: TBitBtn;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Panel2: TPanel;
Panel3: TPanel;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
Label1: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Edit5: TEdit;
Edit4: TEdit;
Edit7: TEdit;
Edit6: TEdit;
Label8: TLabel;
Label9: TLabel;
Label16: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Panel1: TPanel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
CheckBox1: TCheckBox;
Edit11: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit8: TEdit;
BitBtn2: TBitBtn;
Image1: TImage;
BitBtn4: TBitBtn;
Memo1: TMemo;
SaveDialog1: TSaveDialog;
Label17: TLabel;
procedure ReadGroupVar(filename1:string);
procedure BitBtn1Click(Sender: TObject);
procedure Edit9Change(Sender: TObject);
procedure Edit11Change(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TSampleResult = record
L : real;
dt : real;
P : real;
T : real;
R : real;
flag :string[5];
FileName : string[12];
end;
TGroupFile = Record
sType,sUnit,sDate,Biaozhun : string[30];//药条型号,送样单位,送样时间,执行标准
MesType: Char; //测试类型
MesDate: string[30];//测试时间
Name,mp,mt,sLength: string[10]; //操作员,目标压强,目标温度,药条长度
DataDir : string[20];
Num: integer;
Rave ,S, Cv :real;
GS :array[0..9] of TSampleResult;
end;
var
findform: Tfindform;
implementation
var
GroupVar:TGroupFile;
GroupFile:file of TGroupFile;
{$R *.dfm}
procedure Tfindform.ReadGroupVar(filename1:string);
begin
if FileExists(filename1) then
begin
assignfile(Groupfile,filename1);
reset(Groupfile);
read(Groupfile,GroupVar);
closefile(Groupfile);
end;
end;
procedure Tfindform.BitBtn1Click(Sender: TObject);
var
xinghao,danwei,caozuoyuan,wendu,yaqiang,shijian,cunzai:boolean;//是否查询
yaqiang1,wendu1:array[0..1] of real;//查询范围
fromtime,totime:array[0..1] of integer;//查询时间范围
caozuoyuan1:string[10]; //操作员查询
xinghao1,filedir,filedir1:string;
danwei1,filename:string[30]; //需查询的型号,单位
SearchRec:TSearchRec;
i:integer;
begin
if not (Edit1.Text ='') then
begin
xinghao:=true;
xinghao1:=Edit1.Text;
end
else xinghao:=false;
if not (Edit2.Text ='') then
begin
danwei:=true;
danwei1:=Edit2.Text;
end
else danwei:=false;
if not (Edit3.Text ='') then
begin
caozuoyuan:=true;
caozuoyuan1:=Edit3.Text;
end
else caozuoyuan:=false;
if CheckBox1.Checked then
begin
shijian:=true;
fromtime[0]:=strtoint(Edit8.Text);
fromtime[1]:=strtoint(Edit9.Text);
totime[0]:=strtoint(Edit10.Text);
totime[1]:=strtoint(Edit11.Text);
end
else shijian:=false;
if Checkbox2.Checked then
begin
yaqiang:=true;
yaqiang1[0]:=strtofloat(Edit4.Text);
yaqiang1[1]:=strtofloat(Edit5.Text);
end
else yaqiang:=false;
if checkBox3.Checked then
begin
wendu:=true;
wendu1[0]:=strtofloat(Edit6.Text);
wendu1[1]:=strtofloat(Edit7.Text);
end
else wendu:=false;
if not shijian then
begin
fromtime[0]:=2000;
fromtime[1]:=1;
totime[0]:=2050;
totime[1]:=12;
end;
begin // 查询是否有相关文件存在
while fromtime[0]<=totime[0] do //判断年份是否在查询范围内
begin
filedir:='c:\Y'+inttostr(fromtime[0]);
if DirectoryExists(filedir) then //是否存在这一年的文件夹
while fromtime[1]<13 do
begin
if fromtime[1]<10 then filedir:='c:\Y'+inttostr(fromtime[0])+'\M0'+inttostr(fromtime[1])
else filedir:='c:\Y'+inttostr(fromtime[0])+'\M'+inttostr(fromtime[1]); //起始路径
if DirectoryExists(fileDir) then //是否存在一月的文件夹
begin
filedir1:=filedir+'\*.grp';
if FindFirst(filedir1,faAnyFile,SearchRec)=0 then //查找是否存在*.grp文件
begin
FileName:=filedir+'\'+SearchRec.Name;
ReadGroupVar(FileName);
cunzai:=true;
if (caozuoyuan) and (not(GroupVar.Name=caozuoyuan1)) then cunzai:=false;
if (danwei) and (not(Groupvar.sUnit=danwei1)) then cunzai:=false;
if xinghao then
begin
if AnsiPos(xinghao1,GroupVar.sType)=0 then cunzai:=false;
end;
if cunzai then Memo1.Lines.Append(FileName);
while FindNext(SearchRec)=0 do
begin
FileName:=filedir+'\'+SearchRec.Name;
ReadGroupVar(FileName);
cunzai:=true;
if (caozuoyuan) and (not(GroupVar.Name=caozuoyuan1)) then cunzai:=false;
if (danwei) and (not(Groupvar.sUnit=danwei1)) then cunzai:=false;
if xinghao then
begin
if AnsiPos(xinghao1,GroupVar.sType)=0 then cunzai:=false;
end;
if cunzai then Memo1.Lines.Append(FileName);
end;
end;
FindClose(SearchRec);
end;
fromtime[1]:=fromtime[1]+1;
end;
fromtime[0]:=fromtime[0]+1;
fromtime[1]:=1;
end;
end;
if not cunzai then Memo1.Lines.Append('没有所要查询的数据!');
end;
procedure Tfindform.Edit9Change(Sender: TObject);
begin
if (strtoint(Edit9.Text)>12) or (strtoint(Edit9.Text)<1) then
begin
showmessage('月份应该在1月和12月之间!');
Edit9.Text:='1';
end;
end;
procedure Tfindform.Edit11Change(Sender: TObject);
begin
if (strtoint(Edit11.Text)>12) or (strtoint(Edit11.Text)<1) then
begin
showmessage('月份应该在1月和12月之间!');
Edit11.Text:='1';
end;
end;
procedure Tfindform.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure Tfindform.BitBtn4Click(Sender: TObject);
begin
Memo1.Clear;
BitBtn1.Click;
end;
procedure Tfindform.BitBtn3Click(Sender: TObject);
var
filename,ss1:string;
file1,file2:TextFile;
begin
if SaveDialog1.Execute then
begin
filename:='c:\1.txt';
Memo1.Lines.SaveToFile(FileName);
AssignFile(file1,SaveDialog1.FileName+'.txt');
Rewrite(file1);
Writeln(file1,' 查询条件 ');
Writeln(file1,'样品型号: ',Edit1.Text);
Writeln(file1,'送样单位: ',Edit2.Text);
Writeln(file1,'操作员: ',Edit3.Text);
if CheckBox2.Checked then
Writeln(File1,'压强范围: ','从',Edit4.Text,'到',Edit5.Text,'MPa');
if CheckBox3.Checked then
Writeln(file1,'温度范围: ','从',Edit6.Text,'到',Edit7.Text,'摄氏度');
if checkBox1.Checked then
Writeln(file1,'检测时间: ','从',Edit8.Text,'-',Edit9.Text,'到',Edit10.Text,'-',Edit11.Text);
Writeln(file1,' 查询结果 ');
Assignfile(file2,filename);
Reset(file2);
while not eof(file2) do
begin
Readln(File2,ss1);
Writeln(File1,ss1);
end;
CloseFile(File1);
CloseFile(File2);
DeleteFile(filename);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -