如果我的字符串为:1/2/3/4/5/那么,如何操作才能让我分别取得1,2,3,4,5呢?当然,字符串不一定是1/2/3/4/5/这样的,也可能是:133/gfe/far343/fere/等等这样有类似规律的。(字符/字符/)这样。

解决方案 »

  1.   

    偶写的一个Split函数,其它语言中好多都有的]
    //参数str:原始字符串
    //参数delimiter:分隔符
    //返回值:数组
    function Split(const str: string; const delimiter: string = ','): Variant;
    var
      strTemp: string;
      p: Integer;
      Value: array of string;
    begin
      strTemp := str;
      if Copy(strTemp, Length(strTemp), 1) <> delimiter then
        strTemp := strTemp + delimiter;
        
      p := Pos(delimiter, strTemp);
      while p > 0 do
      begin
        setlength(Value, Length(Value) + 1);
        Value[High(Value)] := Copy(strTemp, 1, p-1);
        strTemp := Copy(strTemp, p + 1, Length(strTemp) - p);    p := Pos(delimiter, strTemp);
      end;
      Result := Value;
    end;
      

  2.   

    tls:TStringList;
    i:Integer;tls:=TStringList.Create;
    try
       tls.Text:=StringReplace('ab/wer/354/sdf','/',#13#10,[rfReplaceAll]);   
       for i:=0 to tls.Count-1 do
       begin
          ShowMessage(tls.String[i]);
       end;
    finally
       tls.Free;
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      sl: TStringList;
      str: string;
      i: integer;
    begin
      str := '1/2/3/4/5/';
      sl := TStringList.Create;
      ExtractStrings(['/'], [], PChar(str), sl);
      for i:=0 to sl.Count-1 do
        ShowMessage(sl[i]);
      FreeAndNil(sl);
    end;
      

  4.   

    up unsigned(僵哥(送人以鱼,不如授人渔;授人以渔,不如渔人之鱼)) 
    这个方法最简单