简单的问题和delphi6的idTCPclient的使用 (300分) (1分)

  • 主题发起人 seaerwang
  • 开始时间
S

seaerwang

Unregistered / Unconfirmed
GUEST, unregistred user!
比如我收到一条消息其格式是"[X,XX,XmXXXXXXXXXXXXXXXXXXXXXXX",其中的m是一定有的,但X可以为任何字符,我要接收并显示出来的只是m后面的字,该怎么办?(by delphi6)
列如:message为2;37;0m你瞑思苦想,对基本轻功的体会又深了一层
我只要:你瞑思苦想,对基本轻功的体会又深了一层.
也有可能为X,XX,XmXXX,XX,XXmXXXXXXXXXX.这时只要第二个m后的内容,也就是最近原则
还有
我在一个程序里用了idTCPclient但在
procedure TForm1.FormDestroy(Sender: TObject);
begin
idtcpclient1.Free;
form1.Free;
end;
提示异常Estackoverflow :stack overflow
为什么?怎么解决

还有:)
var
Com,
Msg: string;
begin
if not IdTcpClient1.Connected then
exit;

Msg := IdTCPClient1.ReadLn('', 5); ?????????

if Msg <> '' then
if Msg[1] <> '@' then
begin
memLines.Lines.Add(Msg);
end
else
begin
Com := UpperCase(Trim(Copy(Msg, 2, Pos(':', Msg) - 2))); ??????????
Msg := UpperCase(Trim(Copy(Msg, Pos(':', Msg) + 1, Length(Msg)))); ?????????
if Com = 'CLIENTS' then
lbClients.Items.CommaText := Msg;
end;
打问好的语句是什么意思?
 
没人会?
不可能把
帮帮忙
 
问题一
s:=原始字符串;
while pos('m',s)<>0 do
s:= Copy(s ,pos('m',s)+1, Length(s));
Edit2.text := s;
Edit2.text就是你需要的字符串了

问题二
事件FormDestroy发生时,窗口已经销毁了,你还要释放窗口,肯定引起
stack overflow了。

问题三
1、从IdTCPClient1的缓冲区读取一行字符串,两个参数的意思,
第一个空白字符串是一个中止字符串,一般为空,后面是一个
等待延迟时间。
2、Com := UpperCase(Trim(Copy(Msg, 2, Pos(':', Msg) - 2)));
COM等于消息从第二个字符开始截取,截取总字符数为到“:”符号的前两位
然后再去掉尾坠符,再全部换成大写
3、基本同2一样,不过是截取“:”后一个字符,后面所有的字符。
 
接受答案了.
 
顶部