procedure TForm1.Button1Click(Sender: TObject);
 var
  str:string;
  strlist:TstringList;
begin
  str:='1,2,3,4,5,6';
  try
    strlist:=TstringList.create;
    strlist.CommaText:=str;
    strlist.Delimiter:=',';
    showmessage(inttostr(strlist.Count));
  finally
    strlist.Free;
  end;end;

解决方案 »

  1.   

    只能得到
    a[0]= 字符窜的长度
    a[1]= 1
    a[2]= ,
    a[3]= 2
    a[4]= ,
      

  2.   

    try:
    procedure TForm1.Button1Click(Sender: TObject);
     var
      str:string;
      strlist:TstringList;
      a:array of string;
      i:integer;
    begin
      str:='1,2,3,4,5,6';
      try
        strlist:=TstringList.create;
        strlist.CommaText:=str;
        strlist.Delimiter:=',';
        setlength(a,strlist.Count);
        for i:=0 to strlist.Count-1 do
          begin
            a[i]:=strlist.Strings[i];
            showmessage(a[i]);
          end;
       finally
          strlist.Free;
       end;
    end;
      

  3.   

    我是要拆分后放在一个数组中a中,变成如a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=5,a[5]=6.....
      

  4.   

    lizhenjia(暴雪):对不起,我发贴子时我才看见你的第一个贴子!
                     顺便谢谢你!!!我先试试!!
      

  5.   

    or :
    procedure TForm1.Button1Click(Sender: TObject);
     var
      str:string;
      strlist:TstringList;
      a:array of string;
      i:integer;
    begin
      str:='1,2,3,4,5,6';
      str:=stringreplace(str,',',#13+#10,[rfReplaceAll]);
      memo1.Text:=str;
      try
        strlist:=TstringList.create;
        strlist.Assign(memo1.Lines);
        setlength(a,strlist.Count);
        for i:=0 to strlist.Count-1 do
          begin
            a[i]:=strlist.Strings[i];
            showmessage(a[i]);
          end;
       finally
          strlist.Free;
       end;
    end;
      

  6.   

    str本身就是这个数组,a[0]:=str[1],a[1]:=str[2].....
    不过这样做有什么必要吗?
      

  7.   

    lizhenjia(暴雪):Tstringlist没有Delimiter这个过程呀!
      

  8.   

    是啊str就是数组啊,你可以一个一个char的过
    j:=0;
    for i:= to length(str)
     if str[i]=',' then
         inc(j)
     else
        a[j]:=a[j]+str[i];
      

  9.   

    你用的是什么版本?
    我用的是delphi6!我帮你看看
      

  10.   

    别的版本可能没有,不过你不是delphi6的话就使一使这个:
    procedure TForm1.Button1Click(Sender: TObject);
      var
        i,index:integer;
        ts:Tstringlist;
        s:string;
      begin
        ts:=Tstringlist.create;
        s:='1,2,3,4,5,6';
        while  (pos(',',s)<>0) do
          begin
            index:=pos(',',s);
            ts.add(copy(s,1,index-1));
            delete(s,1,index);
          end;
        ts.add(s);
        for i:=0 to ts.count -1do
          begin
            showmessage(ts.strings[i]);
          end;
      end;
      

  11.   

    这个一定好用,写的挺着急的,忘了ts.FREE了!
      

  12.   

    lizhenjia(暴雪) :你的上一种方法我已试过速度太慢,不过还是行感谢你!!