给我EMAIL给你一个,靠,我昨天刚写好

解决方案 »

  1.   

    HOHO,这么巧;这里:
    [email protected]谢了,老大!
      

  2.   

    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;
      

  3.   

    str:相当于你的str;bzf相当于你的sub
      

  4.   

    TO:free007(无是无非) 我还在等着你的邮件呢,呵呵刚才是晕了,关键是
    if copy(str,i,1)=bzf then
    我想了半天没有想起来怎么实现,还想着跟数组似的用str[i]呢;多谢!多谢benben_hen(小云) !
      

  5.   

    var s : TStrings;
    s := TStringList.Create();
    s:=splitstring('afsdfsdaaa|bbfdsfsdb|ccc','|');
    for i:=0 to s.Count-1 do
     b:=b+s.Strings[i]+#13;
    showmessage(b);
    s.free;
      

  6.   

    str应是这种格式如:1,2,3,4,5,后面要多加一个表示符
      

  7.   

    var s : TStrings;
    s := TStringList.Create();
    s:=splitstring('afsdfsdaaa|bbfdsfsdb|ccc','|');
    for i:=0 to s.Count-1 do
     b:=b+s.Strings[i]+#13;
    showmessage(b);
    s.free;
    这样应该更好些吧,因为我要处理的字符串还含有汉字;
      

  8.   

    pchaos(思考中^_^) :s:=splitstring(str,',');这一句通不过啊
      

  9.   

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

  10.   

    procedure GetArray(const SourceStr,IdStr : String;var ResultArray :  Variant);
    var
      i,j,k : Integer;
      tempstr : String;
      temparray : Variant;
    begin
      j:=0;
      for i := 0 to Length(SourceStr)-1 do
       if SourceStr[i]=IdStr 
       then  j:=j+1;       
       SetLength(temparray,j);
       k := 0;
       j := 0;
       m := 0;
       for i := 0 to Length(SourceStr)-1 do
        begin
          tempstr := '';
          if SourceStr[i]=IdStr 
          then  for m := k to i-1 do tempstr:= tempstr+SourceStr[m];
          temparray[j]:=tempstr;
          k := i+1;
          j := j+1;
        end;
      ResultArray := temparray;
    end;
      

  11.   

    不好意思,上述代码有误,请原谅。
    procedure  TForm1.GetArray(bzf: String;str: String;var ResultArray :variant);
    var
      i,j,k,m : Integer;
      tempstr : String;
      temparray : array of string;
    begin
      j := 0;
      for i := 1 to Length(str) do
        if copy(str,i,1)= bzf then j := j+1;
      SetLength(temparray,j);
      j := 0;
      k := 1;
      for i := 1 to Length(str) do
        begin
          tempstr := '';
          if str[i]=bzf
          then
            begin
              for m := k to i-1 do tempstr := tempstr+str[m];
              temparray[j] := tempstr;
              k := i+1;
              j := j+1;
            end;
        end;
      ResultArray := temparray;
    end;