var
str:string;
iCode:integer;
begin
str:='XX市第5区第9街第10组';
怎样得到上面的5/9/10啊?还有如果5为15或更多位数,怎么处理?
str:string;
iCode:integer;
begin
str:='XX市第5区第9街第10组';
怎样得到上面的5/9/10啊?还有如果5为15或更多位数,怎么处理?
解决方案 »
- 同志们,我又来请教大家了,一定得好好帮帮我啊。。。。。。。MAINMENU
- 用过VCLSkin来看一下,怎么换皮肤
- Query1.Applydates问题!!!!
- 在数据重复输入,用locate函数控制出现一下错误?
- 有哪位知道APRO传真控件在98下需要的安装的文件呀?特急
- 一个还不错的编程站点,内容比较丰富!~~~~~~~~~~~~~~
- delphi高手,Tinifile怎么从变量中取数据啊?就是不用Tinifile.create(filename)....
- delphi idhttp 向asp 或PHP提交参数的问题
- 求救:delphi XE5 生成的UI Automation单元缺少属性
- delphi的入门书籍,请给我推荐几本
- 关于mysql的问题!!!!!!!!!!!!!!
- 产品征名~~~高分相送,不够还可以加
var
str:string;
iCode:integer;
bNum:boolean;
out:string; //输出结果
begin
str:='XX市第5区第9街第10组';
bNum:=false;
out:='';
for i:=1 to Length(str) do begin
if str(i) in number then begin
if bNum then
out:=out+str(i)
else begin
out:=str(i)
bNum:=true;
end;
end
else begin
bNum:=false;
if out<>'' then
...//处理Out
end;
end;
end;
我也只知道这样
//没事写着玩~~function Extraction(mStr: string; mSet: TSysCharSet; mDelimiter: string): string;
var
I: Integer;
B: Boolean;
begin
Result := '';
B := False;
for I := 1 to Length(mStr) do
if mStr[I] in mSet then begin
if B then
Result := Result + mStr[I]
else Result := Result + mDelimiter + mStr[I];
B := True;
end else B := False;
Delete(Result, 1, Length(mDelimiter));
end; { Extraction }procedure TForm1.Button1Click(Sender: TObject);
var
Str: string;
begin
Str := 'XX市第1251区第92街第10组';
Caption := Extraction(Str, ['0'..'9'], '/');
end;
var
i,j:integer;
begin
result:='';
i:=0;
while(i<=length(str)) do
begin
inc(i);
if not (str[i] in ['0'..'9']) then
continue;
for j:=i to length(str) do
if str[j] in ['0'..'9'] then
result:=result+str[j]
else
begin
result:=result+'\';
i:=j;
break;
end;
end;
end;测试如下 输入5E23a1111sd2dit1
输出 5\23\1111\2\1
从 5\23\1111\2\1导出integer数组的函数写起来也很容易
代码错太多
刚才有空重新写了一下procedure TForm1.Button1Click(Sender: TObject);
const number:string='1234567890';
var
str:string;
iCode:integer;
bNum:boolean;
i:integer;
outstr:string; //输出结果
begin
str:='XX市第5区第9街第10组';
bNum:=false;
outstr:='';
for i:=1 to Length(str) do begin
if pos(str[i],number)>0 then begin
if bNum then
outstr:=outstr+str[i]
else begin
outstr:=str[i];
bNum:=true;
end;
end
else begin
bNum:=false;
if outstr<>'' then begin
showmessage(outstr);
outstr:='';
end;
end;
end;
end;