我有一字串:例
abcd,123,789789,
分隔符是自定义,也就是说,例
abcd#123#789789# 或是abcd!123!789789!
我想以分隔符分别取到子串存入 数组或数据库谢谢!!!急等,最好是给出函数!!!!

解决方案 »

  1.   

    用个函数:a:='your String1';
    while pos('#',a)<>0 then
    begin
    b[i]:=copy(a,1,pos('#',a));//b[i] 是你存入的数组
    a:=copy(a,pos('#',a)+1,length(a));
    i:=i+1;
    end;
      

  2.   

    type
      TArrString = array of String;procedure GetSubString(const SourceString: string; Delimiter: Char; var ArrString: TArrString);
    var
      Strings: TStrings;
      Idx: Integer;
    begin
      Strings := TStringList.Create;
      Strings.Delimiter := Delimiter;
      Strings.DelimitedText := SourceString;
      SetLength(ArrString, Strings.Count);
      for Idx := 0 to Pred(Strings.Count) do
        ArrString[Idx] := Strings[Idx];
    end;
      

  3.   

    哈哈,又是你大哥,
    我有几个问题的答案是你给我的了,我也写了一个函数,
    只是没有太好了,我用了,2个for和3个if 就写出来了,
    不过就是觉得的不好,才来问问请给一个好点的,谢谢
      

  4.   

    type
      TArrString = array of String;procedure GetSubString(const SourceString: string; Delimiter: Char; var ArrString: TArrString);
    var
      Strings: TStrings;
      Idx: Integer;
    begin
      Strings := TStringList.Create;
      try
        Strings.Delimiter := Delimiter;
        Strings.DelimitedText := SourceString;
        SetLength(ArrString, Strings.Count);
      for Idx := 0 to Pred(Strings.Count) do
        ArrString[Idx] := Strings[Idx];
      finally
        Strings.Free;
      end;
    end;------------------测试procedure TFormDemo.ButtonDemoClick(Sender: TObject);
    var
      ArrString: TArrString;
      Idx: Integer;
    begin
      GetSubString('abcd#123#789789#', '#', ArrString);
      for Idx := 0 to Pred(Length(ArrString)) do
        ShowMessage(ArrString[Idx]);
    end;