传入两个字符串 str1,str2
返回一个数组处理的过程是:str1 被 str2 所代表的分隔符分割,放入一个数组并返回。100分献上!

解决方案 »

  1.   

    处理的过程是:str1 被 str2 所代表的分隔符分割,放入一个数组并返回。
    什么意思
      

  2.   

    var
      a: array of string;
      s: TStringList;
      i: Integer;
    begin
      s:= TStringList.Create;
      i := Pos(str2,str1);
      while i>0 do
      begin
        s.Add(copy(str1,0,i-1));
        Delete(str1,1,i);
        i := Pos(str2,str1);
      end;
      SetLength(a,s.Count);
      For i:= 0 to s.count-1 do
        a[i] := s.strings[i];
      s.Free;
    end;
      

  3.   

    function splitstr(const str1 ,str2:string):strings;
    var
    i:integer;
    s:string;
    begin
    result:=tstringlist.create;
    s:=str1;
    i:=pos(s,str2);
    while i do
    begin
    result.add(copy(s,1,i));
    s:=rightstr(s,legth(s) - i - legnth(str2) -1);
    i:=pos(s,str2);
    end;
    result.add(s);
    end;
      

  4.   

    function SetPath(const StrInput: string):PCHAR;
    var
      s : char;
      i,j:integer;
      maxL:integer;
      ss:string;
    begin
      s := '\';
        ss:=strInput;
        maxL:=length(strinput);
        j:=0;
        for i:=1 to maxL do
           if comparetext(copy(strinput,i,1),s)=0 then
            begin
                inc(j,1);
                insert(s,ss,i+j);
            end;
        result:=PCHAR(ss+#0);
    end;ss:=SetPath(‘c:\aa\aa.txt’);
    ss的值為’c:\\aa\\aa.txt’
    你參考一下吧。
      

  5.   


      ExtractStrings();
      

  6.   

    不太明白楼主的意思。
    你所说的意思是不是以下的表现。
    试试看。
    Function StrBeCut(str1,str2:string;var Cutstr:array of string):boolean;
    begin
      Result:=False;
      if pos(str2,str1)<>0 then begin
        Cutstr[0]:=Copy(str1,1,pos(str2,str1)-1);
        CutStr[1]:=Copy(str1,pos(str2,str1)+1,length(str1));
        Result:=True;
      end;
    End;
    procedure TForm1.Button2Click(Sender: TObject);
    var
      str1,str2 : string;
      CutStr : array[0..1] of string;
    begin
      str1:='aaabbb/cccddd';
      str2:='/';
      IF StrbeCut(str1,str2,CutStr) then begin
        Showmessage(CutStr[0]); //->>  aaabbb
        Showmessage(CutStr[1]); //->>  cccddd
      End;
    End;
      

  7.   

    我的意思是:
    str1 := 'a,b,c,d'
    str2 := ','返回的是:右 'a','b','c','c' 组成的数组
      

  8.   

    function xx(str1, str2 : string) : tstrings;
    var
      a: array of string;
      s: TStringList;
      i: Integer;
    begin
      s:= TStringList.Create;
      i := Pos(str2,str1);
      while i>0 do
      begin
        s.Add(copy(str1,0,i-1));
        Delete(str1,1,i+length(str2)-1);
        i := Pos(str2,str1);
      end;
      s.Add(str1);
      //SetLength(a,s.Count);
      result := s;
      //s.Free;
    end;ljmanage(过客) 的代码我修改了一下,总算过了,谢谢!