delphi copy 函数 right

我的代码:EdtResult.Text:=Copy(EdtResult.Text,1,Length(EdtResult.Text)-1);代码写在一个BACKSPACE按... 我的代码:
EdtResult.Text := Copy(EdtResult.Text, 1, Length(EdtResult.Text)-1);
代码写在一个BACKSPACE按钮里面,当我按下着个按钮时,会从最右边开始一下删除一个数,但现在的问题是在一段字符串后面有一个小数点(123456789.)我要跨过小数点从9开始向左删除数据,请问该怎么写啊,我如果把Copy(EdtResult.Text, 1, Length(EdtResult.Text)-1);里面的1该成2能跨过小数点开始删除,但是从最左边开始删除数据的了。谢谢!
展开
 我来答
xtfnpgy
2010-07-29 · TA获得超过1784个赞
知道大有可为答主
回答量:1989
采纳率:76%
帮助的人:1095万
展开全部
procedure TForm1.BackSpaceClick(Sender: TObject);
begin
fun_deletestr;//调用函数
end;

function TForm1.fun_deletestr:string;
var
s:string;
i:integer;
begin
s:=trim(EdtResult.Text); //把内容取得多余空格并赋值
i:=pos('.',s); //取得小数点位置
EdtResult.Text:=copy(s,1,i-2)+ //去掉小数点及前1位的结果
copy(s,i,Length(s)-i+1);//小数点及后面几位结果
end;
经过我自己的调试验证的,可以执行!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shiwangxu
2010-07-26 · 超过25用户采纳过TA的回答
知道答主
回答量:196
采纳率:0%
帮助的人:68.8万
展开全部
var
ss:string; len,si:integer;
begin
ss:=EdtResult.Text;
len:=Length(ss);
si:=pos(ss,'.');
if si<>0 then
EdtResult.Text:=copy(ss,1,si-2)+copy(ss,si,len)
else
EdtResult.Text:=copy(ss,1,len-1);
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
renzhumin2
2010-07-22 · TA获得超过163个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:272万
展开全部
var
Str,ResultStr : string;
i : integer;
begin
//For example
//Str := '123456789.99';
I := Pos('.',Str);
if I <>0 then
ResultStr := Copy(Str,1,i-2)
else
ResultStr := Copy(Str,1,Length(Str)-1);

end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
行走的标本
2010-07-23 · TA获得超过179个赞
知道答主
回答量:168
采纳率:0%
帮助的人:143万
展开全部
如果只要从右往左删除的话 ,我感觉还是再弄一个按钮 最后添加.比较靠谱
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dribllec
2010-07-22 · TA获得超过107个赞
知道答主
回答量:105
采纳率:0%
帮助的人:128万
展开全部
var
ss:string; si:integer;
begin
ss:=EdtResult.Text;
si:=pos(ss,'.');
EdtResult.Text:=copy(ss,1,si-2)+copy(ss,si,Length(ss));
end;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式