delphi 从一个字符串中减去相等的另一串字符
比如:str1='1+3-4+'str2='1+3-4+5'要进行str2-str1得到结果是5给str3.str1的内容不一定,但str2就比str1多了个数字。...
比如: str1='1+3-4+' str2='1+3-4+5' 要进行str2-str1 得到结果是 5 给 str3.
str1的内容不一定,但str2 就比str1多了个数字。 展开
str1的内容不一定,但str2 就比str1多了个数字。 展开
1个回答
展开全部
procedure TForm1.Button2Click(Sender: TObject);
var
str, str1, str2: string;
p: Cardinal;
begin
str1 := '1+3-4+';
str2 := '1+3-4+5';
p := Pos(str1, str2) + Length(str1);
str := Copy(str2, p, Length(str2) - (p - 1));
ShowMessage(str)
end;
这可能不是你要的答案,如不是详细描述一下。
var
str, str1, str2: string;
p: Cardinal;
begin
str1 := '1+3-4+';
str2 := '1+3-4+5';
p := Pos(str1, str2) + Length(str1);
str := Copy(str2, p, Length(str2) - (p - 1));
ShowMessage(str)
end;
这可能不是你要的答案,如不是详细描述一下。
追问
p := Pos(str1, str2) + Length(str1);//其中的pos得到的值是否是1?是的话加上str2的长度就是多出来的字符开始的位置。
str := Copy(str2, p, Length(str2) - (p - 1));//那么从str2中的多出来的那个位置开始 取 出后边的所有字符 给str
我说的是否正确?我就是想把这个后边多出来的字符取出来 看来这个是我想要的
另外再问一下这个是 buttonclick事件?
那么点击一下button2 就会出来 5 的massage?
追答
理解完全正确。
//其中的pos得到的值是否是1?是的话加上str2的长度就是多出来的字符开始的位置。
要改一下下面这句
p := Pos(str1, str2) + Length(str1);
改为
p := Pos(str1, str2);
if p 0 then
p := p + Length(str1)
else
Exit;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询