procedure TForm1.Button1Click(Sender: TObject);
var s:string;
i,sum,a:integer;
begin
s:='8a12b23c56d78';
i:=1;a:=0;
while i<=Length(s)+1 do
begin
if s[i] in ['0'..'9'] then
a:=a*10+StrToInt(s[i])
else
begin
sum:=sum+a;
a:=0;
end;
i:=i+1;
end;
showMessage(IntToStr(sum));
end;
var
S , S1 : String;
i , n : integer;
begin
S := '8a12b23c56d78';
S1 := '';
n := 0;
for i:=1 to Length(S) do begin
if (S[i]>='0') and (S[i]<='9') then S1 := S1 + S[i]
else begin
n := n + StrToIntDef(S1,0);
S1 := '';
end;
end;
//到这里n的值就是你需要的值
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s,t:string;
i,v:integer;
c:char;
begin
s:='8a12b23c56d78';
v:=0;
i:=1;
t:='';
while i<=Length(s) do
begin
c:=s[i];
if (c>='0') and (c<='9') then
t:=t+c
else
begin
v:=v+strtoint(t);
// ShowMessage(t);
t:='';
end;
inc(i);
end;
if t<>'' then
v:=v+strtoint(t);
Edit1.Text:=IntToStr(v);
end;