有如下字符串:
   我们?MM你们 0?:?2 ?0
---------------------------------------
用程序实现     我写了段程序:得到A3的值不正确!!!
---------------------------------------
值           说明     
A1=我们     (A1为?MM前的数据)  
A2=你们      (A2为?MM后的数据)   且不包括空格后的数据
A3=0        (A3为?:?前的数据)   且不包括空格前的数据
A4=2       (A4为?:?后的数据)    且不包括空格后的数据
A5=0        (A5为最后一个?后的数据)

解决方案 »

  1.   

    Var
      ss,A1,A2,A3,A4,A5:stirng;
    begin
      ss:='我们?MM你们 0?:?2 ?0';
    end;
    {我想用程序得到A1、A2、A3、A4、A5的值}  
    A1:='我们';  
    A2:='你们'
    A3:='0';
    A4:='2';
    A5:='0';
    {说明:A1为字符串"?MM"前的数据。
          A2为字符串"?MM"后的数据磁到空格结束。
          A3为字符串"?:?"前的数据磁到空格结束。
          A4 为字符串"?:?"后的数据磁到空格结束。
          A5为最后一个?后的数据}
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      s,a3 : string;
    begin
      s := '我们?MM你们    0?:?2  ?0';
      a3 := Trim(copy(s, pos(' ',s) + 1, pos('?:?',s) - pos(' ',s) - 1));
      showmessage(a3);
    end;
    你是不是要这个
      

  3.   

    var i,ipos :integer;
    ss:string;
    begin
      ss:='我们?MM你们 0?:?2 ?0';
      for i:=length('我们?MM你们')+1 to length(ss)-1 do
        if ss[i]<>' 'then
        begin
           showmessage(copy(ss,i,pos('?:?',ss)-i));
           break;
        end;end;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    Var
      ss,A1,A2,A3,A4,A5:string;
    begin
      ss:='我们?MM你们     0?:?2 ?0';
      A1:=copy(ss,1,POS('?MM',ss)-1);
      ss:=copy(ss,Pos('?MM',ss)+3,length(ss));
      A2:=copy(ss,1,Pos(' ',ss)-1);
      ss:=Trim(copy(ss,Pos(' ',ss),length(ss)));
      A3:=copy(ss,1,Pos('?:?',ss)-1);
      ss:=copy(ss,Pos('?:?',ss)+3,length(ss));
      A4:=copy(ss,1,Pos(' ',ss)-1);
      A5:=copy(ss,Pos('?',ss)+1,length(ss));
    end;