Delphi编程,Memo1得到通过socket的数据,请问如何让得到的数据在指定的多个Edit框显示。
我照葫芦画瓢,已经弄了个简单的程序。具体是连接一个服务器(IP和端口号),连接以后读取服务器发送过来的信息,并已经显示在Memo1中了。现在,需要把读取的信息在多个Edi...
我照葫芦画瓢,已经弄了个简单的程序。具体是连接一个服务器(IP和端口号),连接以后读取服务器发送过来的信息,并已经显示在Memo1中了。
现在,需要把读取的信息在多个Edit分别显示出来。比如得到数据iv120ov110ic0.6ic0.5
可以在Edit1、Edit2、Edit3、Edit4分别显示120、110、0.6、0.5 。或者直接发ov220,可以在Edit2显示220.
发送数据多次发送,Edit1、2、3、4可以不断刷新。
下面是小程序中memo1的接收部分。
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
i: Integer;
buf: array of Byte;
RStr: string;
begin
RStr := Socket.ReceiveText;
if chk_TcpHex.Checked then
begin
SetLength(buf, Length(RStr));
for i := 1 to Length(RStr) do
begin
buf[i - 1] := Ord(RStr[i]);
Memo1.Text := Memo1.Text + IntToHex(buf[i - 1], 2) + ' ';
end;
end else
Memo1.Text := Memo1.Text + RStr;
Memo1.SelLength := Length(Memo1.Text);
end;
我是新手,希望可以详细说明。。如果能帮我做出来。必定再加高分!!
上面举例子的地方发送数据弄错了。
是iv120ov110ic0.6oc0.5
但是如果一长串数据字符的不好弄的话,改成每次只发送一个数据比如iv220之类的也可以。 展开
现在,需要把读取的信息在多个Edit分别显示出来。比如得到数据iv120ov110ic0.6ic0.5
可以在Edit1、Edit2、Edit3、Edit4分别显示120、110、0.6、0.5 。或者直接发ov220,可以在Edit2显示220.
发送数据多次发送,Edit1、2、3、4可以不断刷新。
下面是小程序中memo1的接收部分。
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
i: Integer;
buf: array of Byte;
RStr: string;
begin
RStr := Socket.ReceiveText;
if chk_TcpHex.Checked then
begin
SetLength(buf, Length(RStr));
for i := 1 to Length(RStr) do
begin
buf[i - 1] := Ord(RStr[i]);
Memo1.Text := Memo1.Text + IntToHex(buf[i - 1], 2) + ' ';
end;
end else
Memo1.Text := Memo1.Text + RStr;
Memo1.SelLength := Length(Memo1.Text);
end;
我是新手,希望可以详细说明。。如果能帮我做出来。必定再加高分!!
上面举例子的地方发送数据弄错了。
是iv120ov110ic0.6oc0.5
但是如果一长串数据字符的不好弄的话,改成每次只发送一个数据比如iv220之类的也可以。 展开
1个回答
2014-07-26
展开全部
你可以看一下 字符串处理方面的函数 比如 pos copy 等等
通常都是要把收到的信息拆分到不同的item中
通常都是要把收到的信息拆分到不同的item中
追问
我查了下,copy函数好像可以。
我菜鸟能不能帮我看一下我这个程序,该怎么使用copy函数。
RStr是接收的数据吧?
追答
RStr := Socket.ReceiveText; 这是是接收到的数据
自己先写个小程序多实验一下吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询