我在TEdit框中有文字: '955-986,总计= 32'
如何删除逗号后面的所有文字,因此只会留下'955-986'
我试图限制TEdit长度,但它没有按我希望的那样工作。
答案 0 :(得分:3)
您可以使用此代码:
var
tmpStr:string;
commaPosition:integer;
begin
tmpStr := Edit1.Text;
commaPosition := pos(',',tmpStr);
tmpStr := copy(tmpStr,1,commaPosition-1);
Edit1.Text := tmpStr;
end;
答案 1 :(得分:2)
我不是Delphi程序员(不再是)。但是,我猜你从TEdit-Box对象的Text-Property中获取String,搜索第一次出现的,
并获取其索引,并用子串替换TEdit-Box中包含的Text。当前字符串的开头到找到的索引。
edit.Text := Copy(edit.Text, 1, Pos(',', edit.Text)-1);
来源:
答案 2 :(得分:2)
如果没有逗号怎么办?完整的非切割字符串或空字符串?
以下是您限制字符串长度的想法,但仅在找到至少一个逗号时才应用。
var
tmpStr:string;
commaPosition:integer;
begin
tmpStr := Edit1.Text;
commaPosition := pos(',',tmpStr);
if commaPosition > 0 then begin
SetLength(tmpStr, commaPosition - 1);
Edit1.Text := tmpStr;
end;
end;
答案 3 :(得分:1)
TEdit.Text是一个属性,不能作为var
参数传递。但是,一旦引入临时变量,就可以委托检查从Pos
返回到Delete
的字符索引,它将处理所有情况。
var
S: string;
begin
S := Edit1.Text; // try '955-986, total = 32' and '955-986; total = 32'
Delete(S, Pos(',', S), MaxInt);
Edit1.Text := S;
end;