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

📄 main.pas

📁 报文上传,有关l波段雷达的传统系统 报文上传,有关l波段雷达的传统系统 报文上传,有关l波段雷达的传统系统‘ 报文上传,有关l波段雷达的传统系统
💻 PAS
字号:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,shellapi,DateUtils, ComCtrls, ExtCtrls, Menus,
  WinSkinData, jpeg;

type
  TMainForm = class(TForm)
    Button3: TButton;
    sb: TStatusBar;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Edit2: TEdit;
    Button4: TButton;
    Button5: TButton;
    GroupBox2: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    cb1: TComboBox;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    cb2: TComboBox;
    Label8: TLabel;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Image1: TImage;
    Timer1: TTimer;
    notimenu: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    SkinData1: TSkinData;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure savetofile;
    procedure loadfromfile;
    procedure TcFile(fn:string);
    procedure ZtFile(fn:string);
    procedure WndProc(var Mymsg: TMessage);override;
  end;

var
  MainForm: TMainForm;
  nd:NotifyIconData;
const 
  WM_TRAYNOTIFY=WM_USER+1;//定义通知消息
implementation
uses ll_form,dm_unit,dataadmin;
{$R *.dfm}

procedure TMainForm.Button1Click(Sender: TObject);
begin
  edit1.Text:=showllform(edit1.Text);
end;

procedure TMainForm.Button2Click(Sender: TObject);
begin
  ShellExecute(self.Handle,'explore',pchar(edit1.Text),nil,nil,sw_show);
end;
procedure TMainForm.savetofile;
var
  slist:TStringlist;
begin
  slist:=Tstringlist.Create;
  try
    slist.Add(edit1.Text);
    slist.Add(edit2.Text);
    slist.Add(inttostr(cb1.ItemIndex));
    slist.Add(inttostr(cb2.ItemIndex));
    slist.SaveToFile(apppath+'lbd.ini');
  finally
    slist.Free;
  end;
  showmessage('保存成功!');
end;
procedure TMainForm.loadfromfile;
var
  slist:TStringlist;
begin
  slist:=Tstringlist.Create;
  try
    slist.LoadFromFile(apppath+'lbd.ini');
    edit1.Text:=slist.Strings[0];
    edit2.Text:=slist.Strings[1];
    cb1.ItemIndex:=strtoint(slist.Strings[2]);
    cb2.ItemIndex:=strtoint(slist.Strings[3]);
  finally
    slist.Free;
  end;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
  apppath:=extractfilepath(application.ExeName);
  dm.ADOC.ConnectionString:=format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False',[apppath+'lbd.mdb']);
  dm.ADOC.Connected:=true;

  nd.cbSize:= sizeof(NotifyIconData);
  nd.Wnd:=handle;
  nd.uID:=1;
  nd.uFlags:= NIF_MESSAGE or NIF_ICON or NIF_TIP;
  nd.uCallbackMessage:=WM_TRAYNOTIFY;
  nd.hIcon:=application.Icon.Handle;
  StrPLCopy(nd.szTip,appname,63);
  setwindowlong(application.handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;

procedure TMainForm.FormShow(Sender: TObject);
var
  i:integer;
begin
  caption:=appname;
  for i:=15 to 59 do
    cb1.Items.Add(inttostr(i)+'分');
  cb1.ItemIndex:=4;
  cb2.Items:=cb1.Items;
  cb2.ItemIndex:=4;
  loadfromfile;
end;

procedure TMainForm.TcFile(fn:string);
var
  yy,mm,dd,hh,mi,ms:word;
  s:string;
  slist:TStringList;
  ar1,ar2,ar3,ar4,ar5:Tar;
  tt:Tdatetime;
begin
  sb.Panels[1].Text:='文件'+fn+'解码';
  sb.Repaint;
  slist:=Tstringlist.Create;
  try
    Slist.LoadFromFile(fn);
    s:=slist.Strings[0];
    StringToArray(s,' ',ar1);
    s:=slist.Strings[1];
    StringToArray(s,' ',ar2);
    s:=slist.Strings[2];
    StringToArray(s,' ',ar3);
    s:=slist.Strings[3];
    StringToArray(s,' ',ar4);
    s:=slist.Strings[4];
    StringToArray(s,' ',ar5);

   //
    yy:=strtoint(ar1[1]);
    mm:=strtoint(ar1[2]);
    dd:=strtoint(ar1[3]);
    hh:=strtoint(ar1[4]);
    mi:=strtoint(ar1[5]);
    ms:=strtoint(ar1[6]);

    tt:=encodedatetime(yy,mm,dd,hh,mi,ms,0);

    with dm.qu1 do
    begin
      close;
      sql.Text:='select * from tcfile';
      open;
      if not dm.qu1.Locate('qzh;rq',vararrayof([ar1[0],tt]),[]) then
        appendrecord(
          [nil,ar1[0],tt,
          ar2[0],
          ar3[0],ar3[1],ar3[2],
          ar4[0],ar4[1],ar4[2],ar4[3],ar4[4],ar4[5],ar4[6],ar4[7],
          ar5[0],ar5[1],ar5[2],ar5[3],ar5[4],ar5[5],ar5[6],ar5[7],
          ar5[8],ar5[9],ar5[10],ar5[11],ar5[12],ar5[13],ar5[14],ar5[15]
          ]);
      close;
    end;
    movefileex(pchar(fn),pchar(edit2.Text+'\'+extractfilename(fn)),0);
  finally
    slist.Free;
  end;
  sb.Panels[1].Text:='解码完毕';
  sb.Panels[3].Text:=datetimetostr(now);
  sb.Repaint;
end;
procedure TMainForm.ZtFile(fn:string);
var
  i,j,id:integer;
  yy,mm,dd,hh,mi,ms:word;
  s:string;
  slist:TStringList;
  ar1,ar2,ar3,ar4:Tar;
  ar:array of Tar;
  t1,t2,t3:Tdatetime;
begin
  sb.Panels[1].Text:='文件'+fn+'解码';
  sb.Repaint;
  slist:=Tstringlist.Create;
  try
    Slist.LoadFromFile(fn);
    s:=slist.Strings[0];
    StringToArray(s,' ',ar1);
    s:=slist.Strings[1];
    StringToArray(s,' ',ar2);
    s:=slist.Strings[2];
    StringToArray(s,' ',ar3);
    s:=slist.Strings[3];
    StringToArray(s,' ',ar4);

   //
    yy:=strtoint(ar3[0]);
    mm:=strtoint(ar3[1]);
    dd:=strtoint(ar3[2]);
    hh:=strtoint(ar3[3]);
    mi:=strtoint(ar3[4]);
    ms:=strtoint(ar3[5]);
    t1:=encodedatetime(yy,mm,dd,hh,mi,ms,0);
    mi:=strtoint(ar3[6]);
    ms:=strtoint(ar3[7]);
    t2:=encodedatetime(yy,mm,dd,hh,mi,ms,0);
    mi:=strtoint(ar3[9]);
    ms:=strtoint(ar3[10]);
    t3:=encodedatetime(yy,mm,dd,hh,mi,ms,0);

    setlength(ar,strtoint(ar4[0]));
    for i:=low(ar) to high(ar) do
    begin
      s:=slist.Strings[4+i];
      StringToArray(s,' ',ar[i]);
      for j:=low(ar[i]) to high(ar[i]) do
        if ar[i][j]='////' then ar[i][j]:='999999';
    end;
  finally
    slist.Free;
  end;
  dm.ADOC.BeginTrans;
  try
    dm.qu1.close;
    dm.qu1.sql.Text:='select * from ztfile';
    dm.qu1.open;
    if not dm.qu1.Locate('qzh;rq',vararrayof([ar1[0],t1]),[]) then
    begin
      dm.qu1.appendrecord(
        [nil,ar1[0],ar1[1],ar1[2],
        ar2[0],ar2[1],ar2[2],ar2[3],ar2[4],ar2[5],ar2[6],ar2[7],ar2[8],ar2[9],ar2[10],
        t1,t2,ar3[8],t3,ar3[11],ar4[0]
        ]);
      id:=dm.qu1.Fields[0].AsInteger;
      dm.qu1.close;
      dm.qu1.sql.Text:='select * from ztfile1';
      dm.qu1.open;
      for i:=low(ar) to high(ar) do
        dm.qu1.AppendRecord([id,ar[i][0],ar[i][1],ar[i][2],ar[i][3],ar[i][4]]);
      dm.qu1.Close;
    end
    else dm.qu1.close;
  except
    dm.ADOC.RollbackTrans;
    sb.Panels[1].Text:='解码完毕';
    sb.Repaint;
    exit;
  end;
  dm.ADOC.CommitTrans;
  movefileex(pchar(fn),pchar(edit2.Text+'\'+extractfilename(fn)),0);
  sb.Panels[1].Text:='解码完毕';
  sb.Panels[3].Text:=datetimetostr(now);
  sb.Repaint;
end;
procedure TMainForm.Button3Click(Sender: TObject);
var
  sr: TSearchRec;
begin
  timer1.Enabled:=false;
  if FindFirst(Edit1.Text+'\*.txt',faAnyFile,sr) = 0 then
  begin
    repeat
      if pos('R_WEA_LR',sr.Name)<>0 then tcfile(edit1.Text+'\'+sr.Name);
      if pos('R_WEW_LR',sr.Name)<>0 then ztfile(edit1.Text+'\'+sr.Name);
    until FindNext(sr) <> 0;
    FindClose(sr);
  end;
  timer1.Enabled:=true;
end;

procedure TMainForm.Button7Click(Sender: TObject);
begin
  close;
end;

procedure TMainForm.Button4Click(Sender: TObject);
begin
   edit2.Text:=showllform(edit2.Text);
end;

procedure TMainForm.Button5Click(Sender: TObject);
begin
  ShellExecute(self.Handle,'explore',pchar(edit2.Text),nil,nil,sw_show);
end;

procedure TMainForm.Button8Click(Sender: TObject);
begin
  savetofile;
end;

procedure TMainForm.Timer1Timer(Sender: TObject);
var
  yy,mm,dd,hh,mi,ms,mil:word;
begin
  decodedatetime(now,yy,mm,dd,hh,mi,ms,mil);
  if ((hh=8) and (mi=15+cb1.ItemIndex))or
    ((hh=19) and (mi=15+cb2.ItemIndex)) then
    Button3.Click;
end;

procedure TMainForm.WndProc(var Mymsg: TMessage);
var
  pt:TPOINT;
begin
  if mymsg.Msg=WM_SYSCOMMAND then
  begin
    if mymsg.WParam=SC_MINIMIZE then
    begin
      shell_notifyicon(nim_add,@nd);
      showwindow(handle,sw_hide);
    end
    else inherited;
  end
  else if Mymsg.Msg = WM_TRAYNOTIFY then
  begin
    GetCursorPos(pt);
    case mymsg.lParam of
      WM_RBUTTONDOWN:notimenu.Popup(pt.X,pt.y);
      WM_LBUTTONDBLCLK:n1click(n1);
    end;
  end
  else
  inherited;
end;
procedure TMainForm.N1Click(Sender: TObject);
begin
  shell_notifyicon(NIM_DELETE	,@nd);
  showwindow(handle,sw_show);
end;

procedure TMainForm.N2Click(Sender: TObject);
begin
  close;
end;

procedure TMainForm.Button9Click(Sender: TObject);
begin
  sendmessage(self.Handle,WM_SYSCOMMAND,SC_MINIMIZE,0);
end;

procedure TMainForm.Button6Click(Sender: TObject);
begin
  showmodalform(TDataForm,'数据库管理');
end;

end.

⌨️ 快捷键说明

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