字符串为aa*bb*cc
vb中split可以把字符串形成一个数组
array[0]=aa
array[1]=bb
array[2]=cc
请问delphi中相应的函数是什么

解决方案 »

  1.   

    function get_strarray(str,bzf:string): variant;
    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.   

    把你的字符串写成aa*bb*cc*的形式。
      

  3.   

    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;  
     
    begin  
         
       Terms:=TStringList.Create;  
       str1='TEST  &brvbar;44.5  &brvbar;4'  
       SeparateTerms(str1,'  &brvbar;',Terms);  
       Terms.Free;  
    end;