清除字符串中的"#13#10",请帮一下! (125分)

自己用循环解决,最好是自己写点代码判断,这个问题和一个计算机2级考试的题目差不多。
 
StringReplace当然可以。楼主是知道的。楼主说不行的意思是不要用memo。刚我也用StringReplace的方法去跟改我的循环(没有使用Tmemo)。在Tstrings加载时出错。不知如何解决。想听听pihome的高见。
 
谢谢LUCKJ的指导,但使用这方法后,我读出来的只有第一行的数据,后面的都没有了!我的程序任务只接收二进制字符,但不知道服务器为什么老是传一些夹杂换行命令的01信号来,我的是不会生成任何文件,只是一接收到一个信号包之类的东西,就是即时处理!谢谢了,如果明天还是解决不了这个问题,我想大家把分分了算了!哈哈 ̄ ̄ ̄ ̄[:D]
 
给点分,呵呵。

你可以把服务器的数据都读完再处理嘛。StringReplace可以使用,我最近就这么处理的。
 
用trim(),简单
 
指导说重了(不敢),交流吧!str1.LoadFromFile('c:/aa2.txt')我是把你的数据来源假设为文本文件了。我的意思是:要把数据源转化这种型式(Tstringlist)再进行处理。当然Tstrings也是可以的,但我在加载会出了错。不然就可StringReplace替换#10#13,不用循环了。
 
to :gdtkd
我以前也写过stock接受和发送数据的程序,我觉得你接受数据包应该把数据包读为byte类型数数组,不用字符 去处理,这样你就不会遇到什么什么换行,回车的问题,
按照你们的传输协议,很有可能会出现#13数据的,如果有什么问题我可以直接跟你解答
 
to liudz:
服务器端发过来的的确是STRING类型,这是之前一个公司程序员所写,它走人了,东西由我接手,什么东西,源码也没有留下,只有一个接口函数!所以现在只有一个“晕”字!哈哈!
 
不管他发过来是什么类型,这个不重要,而是你怎么去读,读取成什么类型了
用ReceiveBuf() ,不要用ReceiveText
 
to liudz:
是的,但这步一早以由接收器处理了,问题是接收器处理信息包时所输出的信息出现回车之类的,请问我只求处理这些字符,这是这些字符,其它的都不用去理会!
 
var
ReceiveText, line: string;
j: integer;

j:=Pos(Char(13)+Char(10), ReceiveText)
// $0D$0A 一行标志
while j>0 do
begin
line:=Copy(ReceiveText, 1, j-1)
// 取一行
Delete(ReceiveText, 1, j+1)
// 删除一行
...
// 这里你对收到每一行进行分析处理
// 如果只是要没有 $0D$0A 的字串,另存一个变量把line再加一次就行了
...
j:=Pos(Char(13)+Char(10), ReceiveText)
// 指向下一行
end;
 
luckj方法有问题 Trim功能如下 请确定是否时所需要的
function Trim(const S: string): string;
var
I, L: Integer;
begin
L := Length(S);
I := 1;
while (I <= L) and (S <= ' ') do Inc(I);
if I > L then Result := '' else
begin
while S[L] <= ' ' do Dec(L);
Result := Copy(S, I, L - I + 1);
end;
end;

StringReplace完全解决了嘛
而且这个函数和Memo没有任何关系嘛 直接用字符串就好了
TStrings是抽象类 自然不能直接使用 一般TStringList
 
to :gdtkd
我不太明白太处理信息包后为什么有#13,是处理数据的函数的自己的问题,还是就是应该加上#13,如果一定要出去字符中的#13或者#0也是很容易的
var
recitext ,outtext:string;
strlength,i,j:integer
begin
j:=1;
for i := 1 to length(recitext) do
begin
if (byte(recitext)= 0 ) or ((byte(recitext)=13 )) then
begin
//不是#0或者#13
end
else
begin
outtext[j] := recitext;
inc(j);
end

end;

end;
 
谢谢了!到后来发觉分数太少,不够分,请见谅,问题可能不能解决,但大家都给我好多的启示,如果能修改分数的话,我希望大家开心。
问题虽不能解决,但希望大家能继续出手帮忙,毕竟不可能就我一个会有这些问题的!谢谢!
 
谢谢了!到后来发觉分数太少,不够分,请见谅,问题可能不能解决,但大家都给我好多的启示,如果能修改分数的话,我希望大家开心。
问题虽不能解决,但希望大家能继续出手帮忙,毕竟不可能就我一个会有这些问题的!谢谢!
 
我记得MEMO有一个现成的属性就是所有的字符串拼接,不用那么麻烦!
 
谢谢了!到后来发觉分数太少,不够分,请见谅,问题可能不能解决,但大家都给我好多的启示,如果能修改分数的话,我希望大家开心。
问题虽不能解决,但希望大家能继续出手帮忙,毕竟不可能就我一个会有这些问题的!谢谢!
 
多人接受答案了。
 

Similar threads

回复
0
查看
855
不得闲
D
回复
0
查看
821
DelphiTeacher的专栏
D
D
回复
0
查看
629
DelphiTeacher的专栏
D
S
回复
0
查看
949
SUNSTONE的Delphi笔记
S
S
回复
0
查看
770
SUNSTONE的Delphi笔记
S
顶部