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

G

gdtkd

Unregistered / Unconfirmed
GUEST, unregistred user!
有一段字符串,如果在MEMO下会显示如下格式:

AAAAAAAAAAAAA
BBBBBBBBBBBBB
CCCCCCCCCCCCC
DDDDDDDDDDDDD

行数为不定,请问有没有方法,能让它直接变成一个连续的字符串,如:

Str:=AAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCDDDDDDDDDDDDD

即删除"#13#10",不要
用什么MEMO之类,希望能在内存中(或字符串)中直接处理,请各位帮手写出代码!谢谢!
 
procedure TForm1.Button1Click(Sender: TObject);
var
str: string;
begin
str := stringreplace(Memo1.Lines.Text, #13#10, '', [rfReplaceAll, rfIgnoreCase]);
end;
 
Str := StringReplace(Str,#13#10,'',[rfReplaceAll]);
 
Str := StringReplace(Str,#13#10,'',[rfReplaceAll]);
 
以上的我都试过的,都是不行的!不想用MEMO,可不可以直接处理,谢谢。
 
Str := StringReplace(Str,'#13#10','',[rfReplaceAll])

注意, StringReplace这就是在str上直接操作的,把#13#10换成空串,参数为 替换所有的!
 
不能加引号

Str := StringReplace(Str,#13,'',[rfReplaceAll]);
Str := StringReplace(Str,#10,'',[rfReplaceAll]);

 
"#13#10"就是回车换行,你用trim是可以去掉的,我试过了,你不要说不行哦
 
function DelCRLF(src: String): String;
var
i, n: Integer;
begin
SetLength(Result, Length(src))
n := 0;
for i := 1 to Length(src) do
if (src in [#13, #10]) then continue
else begin
Inc(n);
Result[n] := src;
end;
SetLength(Result, n)
end;
 
TRIM(Memo.text);
 
trim只去两端的,不去中间的
 
StringReplace不可能不行的
不过MEMO显示的时候默认设置下如果一行显示不下的时候会自动换行 调整Memo的大小,显示效果也会变的,但是那个根本不是硬回车#13#10
 
procedure TForm1.Button1Click(Sender: TObject);
var str:string;i:integer;
begin
for i:=0 to memo1.Lines.Count-1 do
str:=str+trim(memo1.Lines);
end;
//记得快点给分啊[:D]
 
同意luckj的做法
 
窗体的长度是绝对够长,能够一行过显示所有字符串,我写的是一个单元,没有窗体的,LUCKJ的方法的确是可以去除字符串中的#13#10,但他是对MEMO控件作处理,多谢大家的帮助,以上的方法,我都试过的,这是一个SOCKET接收处理程式,接收(一次过接收)的都是0101之类的二进制字符串,但以上处理的结果都是一样,会自动换行,这个我在大富翁上也找过相似的讨论,但最后都是无答案的!我就是不想在加一个MEMO之类的控件!直接处理
 
//不好意思我没看清楚你不用memo
我改一下你看看
procedure TForm1.Button1Click(Sender: TObject);
var str:string;str1:Tstringlist;i:integer;
begin
str1:=Tstringlist.Create ;
str1.LoadFromFile('c:/aa2.txt');
for i:=0 to str1.Count-1 do
str:=str+trim(str1);
str1.Free ;
str1:=nil;
end;
 
你是怎么试的StringReplace不行?
 
StringReplace肯定是可行的,不过如果你的字符串只用#13或#10而不是用#13#10,那就会有问题
Str:=StringReplace(Str,#13,'',[rfReplaceAll]);
Str:=StringReplace(Str,#10,'',[rfReplaceAll]);
这样操作以后肯定把所有的回车换行都去掉了
 
同意 luckj 的方法, 我最近就是那样处理的! 可惜 不然我就要了分了! :(
 

Similar threads

回复
0
查看
855
不得闲
D
回复
0
查看
822
DelphiTeacher的专栏
D
D
回复
0
查看
629
DelphiTeacher的专栏
D
S
回复
0
查看
950
SUNSTONE的Delphi笔记
S
S
回复
0
查看
771
SUNSTONE的Delphi笔记
S
顶部