我怎样把如下字符串提取出来
st:='jj53*xxddx*dccd*rr3*...';
jj53
xxddx
dccd
rr3
...

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var st:string;
    begin
    st:='jj53*xxddx*dccd*rr3*...';
    st:=stringreplace(st,'*',#13,[rfReplaceAll]);
    memo1.Lines.CommaText := st;end;
      

  2.   

    或者这样
    var
      i: Integer;
    begin
      with TStringList.Create do
      try
        Delimiter := '*';
        DelimitedText := 'jj53*xxddx*dccd*rr3*ccc';
        for i := 0 to (Count - 1) do ShowMessage(Strings[i]);
      finally
        Free;
      end;end;
      

  3.   

    ExtractStrings(['*'],[#20],pchar(st),memo1.Lines);也成
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    st,Str1,Str2:string;
    BeginPos,EndPos:integer;
    begin
    st:='jj53*xxddx*dccd*rr3*...';
    Str2:=st;
    BeginPos:=1;
    While EndPos>1 do
    begin
    EndPos:=Pos('*',Str2);
    Str1:=Copy(Str2,BeginPos,EndPos-BeginPos);
    Str2:=Copy(Str2,EndPos+1,Length(Str2)-EndPos);
    showmessage(Str1);
    end;
    end;