急救,我就20分了,全给了,如何控制一串字符不让他显示0-9 10个数字?(20分)

  • 主题发起人 主题发起人 菜鸟编程
  • 开始时间 开始时间

菜鸟编程

Unregistered / Unconfirmed
GUEST, unregistred user!
急救,我就20分了,全给了,如何控制一串字符不让他显示0-9 10个数字?
 
Function get_str(ss:string):string;
var s:string;
i:integer;
begin
s:='';
for i:=1 to length(ss) do
if not (ss in ['0'..'9']) then
s:=s+ss;
result:=s;
End;
 
type
Tkeyword=set of char;
var
keyword : Tkeyword;
i:integer;
A:string;
begin
A:='abc78y9e4';
A:=Edit1.Text;
keyword:=['0','1','2','3','4','5','6','7','8','9'];
for i:=1 to Length(A) do
if A in Keyword then A:=char(0);
Edit1.Text:=A;
end;
 
错了,错了,是一串字符,如果有0-9这10 个数字时报错!
 
if (ss in ['0'..'9']) then
或者
if A in Keyword then 报错不就行了?
要不用pos
 
那一样的呀
type
Tkeyword=set of char;
var
keyword : Tkeyword;
i:integer;
A:string;
begin
A:='abc78y9e4';
A:=Edit1.Text;
keyword:=['0','1','2','3','4','5','6','7','8','9'];
for i:=1 to Length(A) do
if A in Keyword then //这个地方就是在判断有没有0-9这10 个数字
A:=char(0);
Edit1.Text:=A;
end;
 
Function strOK(ss:string):boolean;
var
i:integer;
begin
result=true;
for i:=1 to length(ss) do
if (ss in ['0'..'9']) then
begin
result=false;
exit;
end;
End;
 
Function DelNum(str:string):string;
var i:integer;
begin
for i:=length(str) downto 1 do
if str in ['0'..'9']) then
Delete(str, i,1);
result:=str;
End

 
const
aa : Array[0..9] of char=('0','1','2','3','4','5','6','7','8','9');

for i:=low(aa) to high(aa) do
if pos(aa[ii],str)>0 then
begin
showmessage('字符串中有数字');
break;
end;
 
太感谢大家了,我会了,实现了可惜分太少了,表示表示心意吧
 
后退
顶部