我想从串口接收一个大概为500kb左右的rar文件,串口控件用的是SPCOMM,因为数据量比较大,之前只接收过小数据量。问题:
1、怎么接收数据?是保存在内存块中然后一次性写文件还是读多少写多少??
2、我想模拟发送这个文件,发送端也是用SPCOMM,该怎么发送这个文件?
3、如果文件是图片该怎么接收??请各位大侠给点意见,最好是源码,急啊!!!!拜托各位了
1、怎么接收数据?是保存在内存块中然后一次性写文件还是读多少写多少??
2、我想模拟发送这个文件,发送端也是用SPCOMM,该怎么发送这个文件?
3、如果文件是图片该怎么接收??请各位大侠给点意见,最好是源码,急啊!!!!拜托各位了
begin
comm1.startcomm;
end;
//关闭串口
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
comm1.StopComm;
end;
//发送数据
procedure TForm1.BitBtn1Click(Sender: TObject);{var str:string;
ch1:char;
begin
comm1.WriteCommData(ch,1);
end.
//接收数据
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
type ss=array[1..500]of char ;
var str1:^ss;
i:integer;
s:array[0..15] of char ;
n:integer;
begin
str1:=Buffer;
//s[]=('0','1','2','3'...'E')
for i:=0 to 9 do
s[i]:=chr(48+i);
for i:=10 to 15 do
s[i]:=chr(55+i);
for i:=1 to bufferlength do
begin
n:=ord(str1^[i]);
listbox1.Items.add(
inttostr(listbox1.Items.Count+1)
+' - '+s[n div 16]+s[n mod 16]);
end;
listbox1.Refresh;
if listbox1.Items.count > strtoint(form2.edit1.text)
then listbox1.Items.Clear;
end;