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

📄 find1.~pas

📁 固体火箭推进剂燃速查询系统源程序Delphi编写
💻 ~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 + -