Function
NumOK(S:
string
):
boolean
;
// 单字节数字
var
I:
integer
;
begin
NumOK:=
True
;
for
i:=
1
to
Length(S)
do
begin
Case
Ord(S[I])
of
48..57
: ;
// 0123456789
else
NumOK:=
False
;
end
;
end
;
end
;
procedure
GetMyString(S:
string
;
var
s1,s2,s3:sting);
var
sL: TStringList;
sAdd,sName,sTel:
string
;
begin
sL:= TStringList
.
Create;
sL
.
Delimiter:=
' '
;
sL
.
DelimitedText:=Trim(S);
S1:= sL[
0
];
// 地址
S2:= sL[
1
];
// 姓名
S3:= sL[
2
];
// 电话
sL
.
Free;
if
NumOK(S1)
then
begin
sTel:=S1;
if
length(S2)>length(S3)
then
begin
sAdd:=S2;
sName:=S3
end
else
begin
sAdd:=S3;
sName:=S2
end
;
end
;
if
NumOK(S2)
then
begin
sTel:=S2;
if
length(S1)>length(S3)
then
begin
sAdd:=S1;
sName:=S3
end
else
begin
sAdd:=S3;
sName:=S1
end
;
end
;
if
NumOK(S3)
then
begin
sTel:=S3;
if
length(S1)>length(S2)
then
begin
sAdd:=S1;
sName:=S2
end
else
begin
sAdd:=S2;
sName:=S1
end
;
end
;
S1:=sAdd;
S2:=sName;
S3:=sTel;
end
;
//调用
var
S,sAdd,sName,sTel:
string
;
begin
S:=
'上海市嘉定区人民路100号 万宇豪 13155558888'
;
// S:='万宇豪 13155558888 上海市嘉定区人民路100号';
// S:='13155558888 上海市嘉定区人民路100号 万宇豪';
GetMyString(S,sAdd,sName,sTel);
Showmessage(sAdd);
// 上海市嘉定区人民路100号
Showmessage(sName);
// 万宇豪
Showmessage(sTol);
// 13155558888
end
;