|
发表于 2014-2-18 08:11:57
|
显示全部楼层
本帖最后由 smset 于 2014-2-18 08:20 编辑
设定一个全局字符串变量,比如G_Buf; 串口数据事件里面把收到的数据累加到G_Buf: G_Buf:=G_Buf+RecvStr;
随即,进行G_Buf的处理:
var G_Buf:string;
if form1.Memo1.Lines.Count>0 then
begin
if length(form1.Memo1.Lines[Memo1.Lines.Count-1])<>LINELEN then form1.Memo1.Lines.Delete(form1.Memo1.Lines.Count-1); //清除最后的非整行。
end;
while length(G_Buf)>=LINELEN do
begin
form1.Memo1.Lines.Add(copy(G_Buf,1,LINELEN)); //将一个整行长度的字符加入Memo1
G_Buf:=copy(G_Buf,LINELEN+1,length(G_BUF)-LINELEN); //截取后面的内容,保存到G_Buf中,继续处理。
end;
if G_Buf<>'' then form1.Memo1.Lines.Add(G_Buf); //将最后剩余的不够整行的数据加入到最后。 |
|