作死啊,delphi的一个缺陷害的我找问题找了几天!
delphi吧
全部回复
仅看楼主
level 7
hxr225976
楼主
var
wordList:TStringList;
begin
wordList.Clear;
wordList.Delimiter:='|';
wordList.DelimitedText:=string(recvstr);
指定的分割符号为分隔符|,结果它连空格也自动当成分隔符了,我这两天的功夫就费在这么一个糟糕的设计上了,害的我好想哭!
2013年11月07日 17点11分
1
level 13
顶之座__赫卡特
我看着更想哭,指定wordList.StrictDelimiter := True;不就行了。
2013年11月07日 17点11分
2
hxr225976
我用socket写了一个聊天室程序,当我发现空格还有此影响的时候,我想到如果聊天信息中有空格那可怎么办?难道两边都用一串奇怪的字符来替换空格,socket接收后再用那串奇怪的字符替换回空格,my god!膜拜、感谢!是你救了我两次啊!!!
2013年11月07日 18点11分
吧务
level 14
BambooCaep
聊天内容里有'|'你又怎么办?
2013年11月07日 22点11分
3
hxr225976
不让发出去,给提示
2013年11月08日 01点11分
hxr225976
回复 hxr225976 :TStringList的分隔符可以是多个字符吗?
2013年11月08日 01点11分
BambooCaep
回复 hxr225976 :自己看源代码啊,花不了半分钟的。
2013年11月08日 04点11分
ayi033
回复 hxr225976 :Char 有几个字符?这个还用问么?
2013年11月08日 04点11分
level 10
wang_80920
干嘛要分割呢。
聊天室了的文本,可以正常发啊。不需要分割。
2013年11月09日 01点11分
4
hxr225976
这块我都快糊涂了。不过分割的原因,除了要显示在聊天室以外,还要保存到数据库,所以弄成分分合合的了。
2013年11月09日 03点11分
wang_80920
回复 hxr225976 :放数据库也不需要分割,用流保存就行。
2013年11月10日 06点11分
level 12
ayi033
这个叫什么缺陷?用VCL 控件或者类的时候,遇到问题,建议自己先去看看他的源码,比如你的DelimitedText,你可以CTRL+左键进去看看它是怎么工作的。
2013年11月10日 05点11分
5
level 13
rockmmm
缺陷……呵呵……
2013年11月10日 17点11分
6
level 5
chinester
这不是缺陷。是你使用方法不对。楼上面 都有说了。
另外就算是聊天程序也不能明文发送吧。那怕简单的BASE64一下也行。然后再加分隔符号。一切就容易了。
再好点。就自己设定好格式:每次发送的数据。前X个代表什么。X+N又代表什么。然后是聊天内容。再加密传送。
容易发送。接收后也好处理。
2013年11月11日 01点11分
7
level 1
爱码哥
看了你的问题,蓝瘦香菇...
2017年08月05日 12点08分
8
level 9
狐狸已成烟
字符串压缩一下在发送
2017年08月06日 12点08分
9
1