var
str:string;str='urser=dgfe&pws=ggg&[email protected]&ads=上海'怎么得到str中各参数的值
urser=?
pws=?
mail=?
ads=?

解决方案 »

  1.   

    比较麻烦,苯的办法是使用Pos确定=的位置,其左边的就是变量,右边到&的就是参数值
      

  2.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
      str:string;
      NewStr:string;
    begin
      str:='urser=dgfe&pws=ggg&[email protected]&ads=上海' ;
      while Pos('=',str)>0 do
      begin
        NewStr:='';
        NewStr:= Copy(str,1,Pos('=',str));
        Delete(str,1,Pos('=',str));
        if Pos('&',str)>0 then begin
          NewStr:=NewStr+ Copy(str,1,Pos('&',str)-1);
          Delete(str,1,Pos('&',str));
        end
        else begin
          NewStr:=NewStr+ str;
          str:='';
        end;
        memo1.Lines.Add(NewStr);
      end;
    end;
      

  3.   

    procedure TForm1.Button8Click(Sender: TObject);
    var
      vStr: string;
    begin
      vStr := StringReplace('urser=dgfe&pws=ggg&[email protected]&ads=上海', '&', ',', [rfReplaceAll]);
      listbox1.Items.Delimiter := ',';
      listbox1.Items.CommaText := vStr;
      button8.Caption := listbox1.Items.Values['urser'];
    //以此类推
    end;listbox1.Items可以使用TStringList来代替。
      

  4.   


    var
      List: TStringList;
    begin
      List := TStringList.Create;
      List.Delimiter := '&';
      List.DelimitedText := 'urser=dgfe&pws=ggg&[email protected]&ads=上海' ;  ShowMessage(List.Values['urser']);
      ShowMessage(List.Values['pws']);
      ShowMessage(List.Values['mail']);
      List.Free;
    end;