edit中有35,则strsLimit2(tstrings)赋值为35的全部排列,如333,335,553等,上述功能以下可以实现,
但问题是若,edit中有35,478,123456等,需将35的排列,478的排列,123456的排列等全部求出怎么办? if  Edit8.Text<>'' then
    begin
    str1:=Edit8.TExt;
    cnt1:=Length(Edit8.Text);
     for i:=1 to cnt1 do
        for j:=1 to cnt1 do
            for k:=1 to cnt1 do
            begin
                a:=str1[i];
                b:=str1[j];
                c:=str1[k];
                strsLimit2.Add(a+b+c);
             end;
     end;

解决方案 »

  1.   


    var
      str:array of string;
    procedure TForm1.Button2Click(Sender: TObject);
    var
      sl:Tstringlist;
      i: integer;
    begin
      sl:=Tstringlist.Create;
      sl.DelimitedText:='35,445,567';
      sl.Delimiter:=',';
      setlength(str,sl.Count);
      for i:=0 to sl.Count-1 do
        str[i]:=sl.Strings[i];
    end;然后用你的程序对str[i]进行处理
      

  2.   

    将你的edit的内容付给sl.DelimitedText就可以了  sl:=Tstringlist.Create;
      sl.DelimitedText:='35,445,567';
      sl.Delimiter:=',';
      setlength(str,sl.Count);
      for i:=0 to sl.Count-1 do
        str[i]:=sl.Strings[i];
      sl.free;