Delphi 将TStringlist转换为带分隔符的字符串

Delphi 将TStringlist转换为带分隔符的字符串,delphi,tstringlist,Delphi,Tstringlist,我有一个存储在TStringList中的字符串列表,我想把它转换成用逗号分隔的字符串,我使用以下代码 channelList: TStringList; aCurrentChannel := Stringreplace(channelList.Text,Char(13)+Char(10),',',[rfReplaceAll]); 但是最后一个字符出现了,比如1,2,还有什么可以避免的吗?您需要使用TStringList类的属性。从联机帮助 使用DelimitedText在单个字符串中获取或设

我有一个存储在TStringList中的字符串列表,我想把它转换成用逗号分隔的字符串,我使用以下代码

channelList: TStringList;
aCurrentChannel :=  Stringreplace(channelList.Text,Char(13)+Char(10),',',[rfReplaceAll]);
但是最后一个字符出现了,比如1,2,还有什么可以避免的吗?

您需要使用
TStringList
类的属性。从联机帮助

使用DelimitedText在单个字符串中获取或设置TStrings对象中的所有字符串,由Delimiter属性指定的字符分隔


使用
DelimitedText
属性:

channelList.Delimiter := ',';
channelList.QuoteChar := ''; // or
channelList.QuoteChar := #0; // for higher delphi versions
aCurrentChannel := channelList.DelimitedText;

当你进入字符串列表时,我建议你看看


TStringList有一个CommaText属性,正如JamesB所写,有
CommaText
属性,但是使用
Trim()
应该可以修复原始解决方案,即
StringReplace(Trim(sl.Text),…)
@JamesB,CommaText用正如QuoteChar所说,也许这不是OPwants@whosrdaddy,QuoteChar仅在需要时使用(即字符串中有空格或引号时)。然而,DelimitedText对引号的作用是相同的。CommaText仅使用固定字符作为分隔符和引号。@uwerabe,实际上它只引用带空格和引号的字符串,但可能不需要它。
channelList.QuoteChar:=''不再工作,
channelList.QuoteChar:=#0-它的工作原理我正在使用XE7,我得到一个错误:E2010不兼容的类型:“Char”和“string”。但在Delphi6中,我总是使用
QuoteChar:=''它取决于unicode?
// var channelList: iJclStringList;
var s: string;

s := JclStringList.Add(['aaa','bbb','ccc '])
         .Split('ddd: eee', ':', False).Trim.Join(',');