请问有一‘10,15,12,13,11’字符串,想写一个函数指定提取其中的第几个数字,该怎么写?(100分)

  • 主题发起人 主题发起人 filter
  • 开始时间 开始时间
F

filter

Unregistered / Unconfirmed
GUEST, unregistred user!
字符串长度不定,但都以‘,’为分隔符
例:‘10,15,12,13,11’
指定2得15
指定4得13
指定1得10

 
偷懒!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1499672
 
笨办法
对字符串进行拆解,记住','的位置
 
---------------------------------------------------------------
function SplitString(const source,ch:string):TStringlist;
var
temp:string;
i:integer;
begin
result:=tstringlist.Create;
temp:=source;
i:=pos(ch,source);
while i<>0 do
begin
result.Add(copy(temp,0,i-1));
delete(temp,1,i);
i:=pos(ch,temp);
end;
result.Add(temp);
end;

调用:
s:=splitstring('afsdfsdaaa|bbfdsfsdb|ccc','|');
for i:=0 to s.Count-1 do
b:=b+s.Strings+#13;
showmessage(b);
s.free;
---------------------------------------------------------------
 
var
s,s1:string;
i,i1:integer;
j:integer;
begin
j:=4;
//所需位置
i1:=1;
s:='10,15,12,13';
while i1<4 do
begin
i:=pos(',',s);
i1:=i1+1;
s:=copy(s,i+1,length(s)-i+1);
end;
s1:=copy(s,1,i-1);
edit1.text:=s1;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
s:string;
ss:TStringList;
i:integer;
begin
s:='10,15,12,13';
ss:=TStringList.create;
ss.CommaText:=s;
showmessage(Format('共有%d个数',[ss.count]));
for i:=1 to ss.count do
showmessage(Format('第%d个数为“%s”',[i,ss[i-1]]));
ss.free;
end;
 
嘻嘻,楼上的大哥好厉害,佩服,这个也被你想到了
 
谢谢各位
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部