求一个函数,在字符串中提取字母。

qft516 2005-09-06 09:32:45
有没有这样的函数?
如:ABC001,A002.
我只取前面的字母ABC,A
...全文
264 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qft516 2005-09-06
  • 打赏
  • 举报
回复
To: cuilj(一云忆水)
真不好意思,结了贴才看见你的回答。你的答案很彻底。我另开一贴给你
leonkim 2005-09-06
  • 打赏
  • 举报
回复
我的方法是效率最高而且最准确的,可惜楼主看不到了。
leonkim 2005-09-06
  • 打赏
  • 举报
回复
前边的都不太好
procedure TForm1.BitBtn1Click(Sender: TObject);
var
s: string;
i: integer;
begin
s:= 'AB2az3C';
i := 1;
while i <= Length(s) do
begin
if not (((Ord(s[i]) >= 65) And (Ord(s[i])<=90)) or ((Ord(s[i]) >= 97) And (Ord(s[i])<=122))) then
begin
dec(i);
break;
end;
inc(i);
end;
showmessage(copy(s,1,i));
end;
qft516 2005-09-06
  • 打赏
  • 举报
回复
谢谢楼上两位。
chenylin 2005-09-06
  • 打赏
  • 举报
回复
function TForm1.GetAlpha(Astr: string): string;
var
i:integer;
begin
Result:='';
for i:=1 to Length(Astr) do
if Astr[i] in ['a'..'z','A'..'Z'] then Result:=Result+Astr[i];
end;
xixuemao 2005-09-06
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
s,ss: string;
i: integer;
begin
ss:= '';
s:= 'AB2az3C';
for i:=0 to Length(s) do
begin
if ((Ord(s[i]) >= 65) And (Ord(s[i])<=90)) or ((Ord(s[i]) >= 97) And (Ord(s[i])<=122)) then
ss:= ss+s[i];
end;
showmessage(ss);
end;
hhzqf1980 2005-09-06
  • 打赏
  • 举报
回复
你可以自己写一个函数,根据字母的ASCII范围
hzwmjl 2005-09-06
  • 打赏
  • 举报
回复
欢迎加入Borland DELPHI程序员联盟,参与群里技术讨论!群号1805366

5,387

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧