紧急求助````关于用DELPHI用SPCOMM控件进行通信,然后对短消息进行数据汇总 紧急求助````` 课程设计题目是要用DELPHI编一个数据库,具体的是使用SPCOMM控件编一个收发短信的,利用PC机与短消息模块连接进行通信,然后能把接收到的信息进行数据汇总(貌似显示在个表格中),收到的消息要对应到表格中的行列中,然后把收到的消息转发给别人```` 有人会不```求教下!!! 会的人QQ详谈``````` 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 忘记了````QQ165472544 会的人教下````````现在我主要是不能把收到的信息进行对应入座的````还有前面利用的是AT指令的我 设置好SPCOMM的波特率等各种属性,SPCOMM.StartComm打开串口SPCOMM.Stop;关闭串口下面是接收 procedure TfrmMain.COMMReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word); var S:string;begin SetLength(s,bufferlength); Move(buffer^,pchar(S)^,bufferlength); Memo1.Lines.Add(S);end; 1、在节目上设置后通讯的端口等信息,然后打开串口,就是如这样的一些代码: self.Comm1.CommName:=self.ComboBox4.Text; self.Comm1.BaudRate:=strtoint('9600'); self.Comm1.ByteSize:=tbytesize(self.ComboBox1.ItemIndex); self.Comm1.StopBits:=tstopbits(self.ComboBox2.ItemIndex); self.Comm1.Parity:=tparity(self.ComboBox3.ItemIndex); try self.Comm1.StartComm; except raise exception.Create('打开串口错误'); end; self.StatusBar1.SimpleText:=' '+self.ComboBox4.text+'已打开';2、发送At指令,应该有Modem什么的吧,有的还需要转换一下状态,相关的代码类似这些: s:='ATDT'+trim(edit2.Text)+chr(13); // AT指令 i:=length(s); comm1.WriteCommData(pchar(s),i); //通过串口发送至MODEMvar s:string;begin s:='+++'; comm1.WriteCommData(pchar(s),length(s)); var s:string;begin s:='ATH0'+chr(13); comm1.WriteCommData(pchar(s),5); self.BitBtn1.Enabled:=false;3、处理接收返回数据类似:procedure Tfrmbaoshui_net.Comm1ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);var viewstring:string; s:string; aqw325:tadoquery; sb_mode:string;begin setlength(viewstring,bufferlength); move(buffer^,pchar(viewstring)^,bufferlength); sleep(80); s:='ATA'+chr(13); edit3.Text := viewstring; if length(viewstring)>30 then begin if echo_controls_JZ(hextostring('20080808')+viewstring)=true then begin save_coffient1(); save_tax_user_USB(); showmessage('监控信息回传成功!'); aqw325:=dm1.create_ado(); aqw325.SQL.Text:='select * from bsrq'; aqw325.Open; aqw325.Edit; aqw325.FieldByName('sb_date1').AsDateTime:=aqw325.FieldByName('sb_date').AsDateTime; aqw325.FieldByName('tag01').AsString:='1'; aqw325.Post; aqw325.Close; end; end; end;===========================以上代码为多年之前的,仅供参考! 轮子已经有了,为什么还要去再发明一次轮子?下载个短信收发控件用多方便!!地址:http://download.csdn.net/source/751304用于收发短信的控件,是基于spcomm基础的控件,支持多线程,稳定性好。 关于delphi中关联打印机的问题 delphi中ado如何动态连接数据库 关于MessageBox,MessageDlg的用法! 求变量ascii的递增值 HO HO 如何动态执行delphi程序?像exec('select * from '+@tablename)一样 如何获取鼠标当前位置,并截下鼠标周围一定区域内的图像? 如何把数据库导出为电子表格文件? 把这段汇编写入Delphi吧 关于安装.高手,高手,急急急! 请教:在程序进行长时间的数据库操作时,让鼠标还处于活动状态? delphi怎么做数据库 TIdTCPServer在Execute时自动退出
SPCOMM.StartComm打开串口
SPCOMM.Stop;关闭串口
下面是接收 procedure TfrmMain.COMMReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var S:string;
begin
SetLength(s,bufferlength);
Move(buffer^,pchar(S)^,bufferlength);
Memo1.Lines.Add(S);
end;
self.Comm1.BaudRate:=strtoint('9600');
self.Comm1.ByteSize:=tbytesize(self.ComboBox1.ItemIndex);
self.Comm1.StopBits:=tstopbits(self.ComboBox2.ItemIndex);
self.Comm1.Parity:=tparity(self.ComboBox3.ItemIndex);
try
self.Comm1.StartComm;
except
raise exception.Create('打开串口错误');
end;
self.StatusBar1.SimpleText:=' '+self.ComboBox4.text+'已打开';2、发送At指令,应该有Modem什么的吧,有的还需要转换一下状态,相关的代码类似这些:
s:='ATDT'+trim(edit2.Text)+chr(13); // AT指令
i:=length(s);
comm1.WriteCommData(pchar(s),i); //通过串口发送至MODEM
var
s:string;
begin
s:='+++';
comm1.WriteCommData(pchar(s),length(s)); var
s:string;
begin
s:='ATH0'+chr(13);
comm1.WriteCommData(pchar(s),5);
self.BitBtn1.Enabled:=false;3、处理接收返回数据
类似:
procedure Tfrmbaoshui_net.Comm1ReceiveData(Sender: TObject;
Buffer: Pointer; BufferLength: Word);
var
viewstring:string;
s:string;
aqw325:tadoquery;
sb_mode:string;
begin
setlength(viewstring,bufferlength);
move(buffer^,pchar(viewstring)^,bufferlength);
sleep(80);
s:='ATA'+chr(13);
edit3.Text := viewstring;
if length(viewstring)>30 then
begin
if echo_controls_JZ(hextostring('20080808')+viewstring)=true then
begin
save_coffient1();
save_tax_user_USB();
showmessage('监控信息回传成功!');
aqw325:=dm1.create_ado();
aqw325.SQL.Text:='select * from bsrq';
aqw325.Open;
aqw325.Edit;
aqw325.FieldByName('sb_date1').AsDateTime:=aqw325.FieldByName('sb_date').AsDateTime;
aqw325.FieldByName('tag01').AsString:='1';
aqw325.Post;
aqw325.Close;
end;
end;
end;
===========================
以上代码为多年之前的,仅供参考!
下载个短信收发控件用多方便!!
地址:
http://download.csdn.net/source/751304
用于收发短信的控件,是基于spcomm基础的控件,支持多线程,稳定性好。