📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SPComm, StdCtrls, DB, DBTables, Grids, DBGrids;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Table1: TTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Query1: TQuery;
procedure Button1Click(Sender: TObject);
procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
viewstring:string;
i:integer;
rbuf,sbuf:array[1..16] of byte;
implementation
{$R *.dfm}
procedure senddata;
var
commflg:boolean;
begin
end;
procedure GetFromHistory(ts1,ts2:string);
var
ResultStr:string;
begin
with Form1.Query1 do
begin
SQL.Clear;
SQL.Text:='Select * from 历史库01.db where 日期时间 >= :tdatetime1 and 日期时间 <= :tdatetime2';
ParamByName('tdatetime1').AsDateTime:=strtodatetime(ts1);
ParamByName('tdatetime2').AsDateTime:=strtodatetime(ts2);
Prepare;
Open;
FetchAll;
ResultStr:=FieldByName('日期').AsString+';';
ResultStr:=ResultStr+FieldByName('时间').AsString+';';
ResultStr:=ResultStr+FieldByName('烟尘折算5分钟平均值').AsString+';';
ResultStr:=ResultStr+FieldByName('烟尘折算5分钟最大值').AsString+';';
ResultStr:=ResultStr+FieldByName('烟尘折算5分钟最小值').AsString+';';
ResultStr:=ResultStr+FieldByName('烟尘折算5分钟超标时间').AsString+';';
ResultStr:=ResultStr+FieldByName('烟尘实测5分钟平均值').AsString+';';
ResultStr:=ResultStr+FieldByName('烟尘5分钟排放量').AsString+';';
ResultStr:=ResultStr+FieldByName('烟尘累计排放量').AsString+';';
ResultStr:=ResultStr+FieldByName('烟尘修正系数A').AsString+';';
ResultStr:=ResultStr+FieldByName('烟尘修正系数B').AsString+';';
ResultStr:=ResultStr+FieldByName('烟尘数据标记').AsString+';';
ResultStr:=ResultStr+FieldByName('SO2折算5分钟平均值').AsString+';';
ResultStr:=ResultStr+FieldByName('SO2折算5分钟最大值').AsString+';';
ResultStr:=ResultStr+FieldByName('SO2折算5分钟最小值').AsString+';';
ResultStr:=ResultStr+FieldByName('SO2折算5分钟超标时间').AsString+';';
ResultStr:=ResultStr+FieldByName('SO2实测5分钟平均值').AsString+';';
ResultStr:=ResultStr+FieldByName('SO2的5分钟排放量').AsString+';';
ResultStr:=ResultStr+FieldByName('SO2累计排放量').AsString+';';
ResultStr:=ResultStr+FieldByName('SO2数据标记').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气流速5分钟平均值').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气流速5分钟最大值').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气流速5分钟最小值').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气流量5分钟平均值').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气5分钟排放量').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气累计排放量').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气流量系数').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气流速数据标记').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气温度5分钟平均值').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气温度数据标记').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气压力5分钟平均值').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气压力数据标记').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气湿度5分钟平均值').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气湿度数据标记').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气含氧量5分钟平均值').AsString+';';
ResultStr:=ResultStr+FieldByName('烟气含氧量数据标记').AsString+';';
ResultStr:=ResultStr+FieldByName('NOX折算5分钟平均值').AsString+';';
ResultStr:=ResultStr+FieldByName('NOX折算5分钟最大值').AsString+';';
ResultStr:=ResultStr+FieldByName('NOX折算5分钟最小值').AsString+';';
ResultStr:=ResultStr+FieldByName('NOX折算5分钟超标时间').AsString+';';
ResultStr:=ResultStr+FieldByName('NOX实测5分钟平均值').AsString+';';
ResultStr:=ResultStr+FieldByName('NOX的5分钟排放量').AsString+';';
ResultStr:=ResultStr+FieldByName('NOX累计排放量').AsString+';';
ResultStr:=ResultStr+FieldByName('NOX数据标记').AsString+';';
ResultStr:=ResultStr+FieldByName('日期时间').AsString;
Close;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
fb:boolean;
fstr:string;
dt:TdateTime;
begin
{with Table1 do
begin
fb:=locate('日期','2004-1-31',[LoCaseInsensitive,LoPartialKey]);
if(fb) then
fstr:=Fieldbyname('时间').AsString;
end;}
GetFromHistory('2003-12-31 11:11:54','2003-12-31 13:24:34');
{ Query1.SQL.Clear;
// Query1.SQL.Add('Select * from 历史库01.db where SO2折算5分钟平均值=1552.4');
// Query1.Continent:= '时间'
Query1.SQL.Text:='Select * from 历史库01.db where 日期=:tdate and 时间 >= :ttime';
Query1.ParamByName('tdate').AsDateTime:=strtodate('2004-1-31');
Query1.ParamByName('ttime').AsTime:=strtotime('12:51:38');
Query1.Prepare;
Query1.Open;
Query1.FetchAll;
fstr:=Query1.FieldByName('日期').AsString;
fstr:=Query1.FieldByName('日期时间').text;
Query1.Close;
MessageDlg(fstr,mtInformation,[mbok],0); }
sbuf[1]:=byte($f0);
sbuf[2]:=byte($01);
sbuf[3]:=byte($ff);
sbuf[4]:=byte($ff);
sbuf[5]:=byte($02);
sbuf[6]:=byte($f0);
senddata;
end;
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;
begin
viewstring:='';
move(buffer^,pchar((@rbuf)^),BufferLength);
for i:=1 to bufferlength do
viewstring:=viewstring+inttohex(rbuf[i],2)+' ';
viewstring:='接收'+viewstring;
memo1.Lines.add(viewstring);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -