一个串 aaa|bbb|ccc 怎样拆成三部分然后放入TStringList中?(20分)

  • 主题发起人 主题发起人 maohbao
  • 开始时间 开始时间
M

maohbao

Unregistered / Unconfirmed
GUEST, unregistred user!
一个串 aaa|bbb|ccc 怎样拆成三部分(aaa,bbb,ccc)然后放入TStringList中?
 
ExtractStrings(['|'],[' '],'aaa|bbb|ccc',ListBox1.Items);
 
delphi最讨厌的东西,没有Split
除了kaida的还有一种方法:
Str:='aaa|bbb|ccc';
Str:=StringReplace( str, '|', #13#10, [rfReplaceAll] );
StringList.Text:=Str;
 
我来个第三种方法:
procedure TForm1.Button1Click(Sender: TObject);
var
lst:tstringlist;
i:integer;
begin
lst:=tstringlist.Create;
try
lst.Delimiter:='|';
lst.DelimitedText:='aaa|bbb|ccc';
for i := 0 to lst.Count-1 do
begin
memo1.Lines.Add(lst.Strings);
end;
finally
lst.Free;
end;
end;

完全使用stringlist的特性
 
我只知道前两种方法
这回看到了第3种方法
受教了

以前一直在用第1种方法
 
学习一下,三种方法都不错..
 
第三种方法真是学习了
 
TStrings用了不少时间了,还真不知道这样的用法。
收藏下。
 
又学到了东西! 谢谢! TKS !
 
这个问题论坛里面有很多帖子,上面的方法都有缺点,
TStrings的默认分割符是' '和',',只有将'|'替换成' '或者',',在赋值给TStrings.CommaText就自然分割了,但是这有个缺点,就是字符里面含有' '和','就不行了
最好就是自己写个,我用下面这个很好用,也是在大富翁里面找的
function SplitString(const source,ch:string):tstringlist;
var
temp:string;
i:integer;
begin
result:=tstringlist.Create;
temp:=source;
i:=pos(ch,source);
while i<>0 do
begin
result.Add(copy(temp,0,i-1));
delete(temp,1,i);
i:=pos(ch,temp);
end;
result.Add(temp);
end
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部