我现在遇到一个问题请大家帮忙。slist:=tstringlist.Create;
slist.Delimiter :=',';
slist.DelimitedText :='a,b,c,d'如果像上面那样写,slist.strings[0]....都有值,可如果写成这样就不行了slist:=tstringlist.Create;
slist.Delimiter :=',';
slist.DelimitedText :='a,bb  b,c,d'在B处,出现空格后面截取的内容就全乱了。。或者写成这样也不行slist:=tstringlist.Create;
slist.Delimiter :=',';
slist.DelimitedText :='a,[b],c,d'B处加入了[]后,截取好像也不行请大家帮忙解决一下谢谢,盼复

解决方案 »

  1.   

    'a,[b],c,d'这样应该没问题吧。
      

  2.   

    如果是空格可以这样:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      s: tstringlist;
      i: integer;
    begin
      s:= tstringlist.Create;
      s.Delimiter:= ',';
      s.DelimitedText:= stringreplace('[a],bb b,[c],d',' ','_',[rfReplaceAll]);
      for i:= 0 to s.Count-1 do
        memo1.Lines.Add(stringreplace(s[i],'_',' ',[rfReplaceAll]));
      s.Free;
    end;
    虽然很笨。
      

  3.   

    如果你的Delimiter是','的话可以直接用Stringlist的CommaText属性
    slist:=tstringlist.Create;
    slist.CommaTextDelimitedText :='a,"bb{}[]  b",c,d';
    用双引号把特殊的字符括起来就可以了
      

  4.   

    StrList := TStringlist.Create;
      StrList.Delimiter := ',';
      StrList.DelimitedText := 'a,"bb{}[]  b",c,d';
    这样也可以
      

  5.   

    msg:='来自['+edit4.Text+']用户--'+edit3.Text  ;
    idtcpclient1.WriteLn('2,'+msg)现在又有一个问题出现,就是在msg中,edit4和edit3传过来的内容有可能都存在特殊字符。那么这样的情况如何解决?