var 
  a: Tstrings;begin
  a := TStringlist.Create;
  a.Text := s;
  a.Delimiter := " ";
  for i := 0 to a.Count - 1 do
    // do for a[i]
end;

解决方案 »

  1.   

    function get_strarray(str,bzf:string): variant;
    //bzf:表示符如:,*@等等
    var
      i,j,k:integer;
      ss:array of string;
    begin
      j:=0;
      //求出数组的长度
      for i:=1 to (length(str)) do
      begin
        if copy(str,i,1)=bzf then j:=j+1;
      end;
      setlength(ss,j);
      //求出分隔符以外的字符串
      j:=0;
      k:=1;
      for i:=1 to length(str) do
      begin
        if copy(str,i,1)=bzf then
        begin
          ss[j]:=copy(str,k,i-k);
          j:=j+1;
          k:=i+1;
        end;
      end;
      //给预定义变量赋值,数组类型
      result:=ss;
    end;
      

  2.   


    procedure SeparateTerms(s : string;Separator : char;Terms : TStringList);
      var
      hs : string;
      p : integer;begin
      Terms.Clear; // 清除所有的terms
      if Length(s)=0 then   // 如没有任何分隔字符存在就退出
        Exit;
      p:=Pos(Separator,s);
      while P<>0 do
      begin
        hs:=Copy(s,1,p-1);   // 复制 term
        Terms.Add(hs);       // 加入 term
        Delete(s,1,p);       // 清除分隔符
        p:=Pos(Separator,s); // 寻找下一个分隔符
      end;
      if Length(s)>0 then
        Terms.Add(s);        // 结尾剩余字符加入 term
    end;
    //使用方法var Terms : TStringList;SeparateTerms(s,' ',Terms);
      

  3.   

    function SplitString(const source,ch:string):tstrings;
    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;