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