求一个函数?
字符串s:='111,222,33333,4444,55555';
整数值i:=4;
由以上两个条件得到值4444;
function ReadStr(s:string;i:integer):string;
begin
end;
问题点数:20、回复次数:5Top
1 楼gxgyj(杰克逊)回复于 2004-12-01 16:55:32 得分 0
楼主的意思是,从S中得到第4组字符,还是以4开头的字符。Top
2 楼dzshu(某星星的马甲,相信不?)回复于 2004-12-01 16:58:18 得分 10
function ReadStr(s:string;i:integer):string;
var
k: Integer;
NewStr: string;
Strs: TStrings;
begin
Strs := TStringList.Create;
try
NewStr := s + ',';
for k := 1 to Length(s) do
if s[i] = ',' then
begin
Strs.Add(Copy(NewStr, 1, Pos(',', NewStr) - 1));
Delete(NewStr, 1, Pos(',', NewStr));
end;
Result := Strs.Strings[i - 1];
finally
Strs.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
s: string;
begin
s := '111,222,33333,4444,55555';
i := 4;
ShowMessage(ReadStr(s, i));
end;Top
3 楼ocean617(海洋)回复于 2004-12-01 17:10:45 得分 10
function ReadStr(s:string;i:integer):string;
var
J:integer;
Num:integer;
Mstr:string;
begin
result:='';
Num:=0;
for J:=0 to Length(s) do
begin
if s[J]=',' then
begin
Inc(Num);
if Num=i then
result:=Mstr
else
Mstr:='';
end
else
Mstr:=Mstr+str[i];
end;
end;
Top
4 楼ocean617(海洋)回复于 2004-12-01 17:15:58 得分 0
这个是正确的代码,呵呵,前面的str[i]要改为s[J]才成
function ReadStr(s:string;i:integer):string;
var
J:integer;
Num:integer;
Mstr:string;
begin
result:='';
Num:=0;
for J:=0 to Length(s) do
begin
if s[J]=',' then
begin
Inc(Num);
if Num=i then
result:=Mstr
else
Mstr:='';
end
else
Mstr:=Mstr+s[J];
end;Top
5 楼ocean617(海洋)回复于 2004-12-01 17:33:27 得分 0
修改了一下,应该是对的:
function ReadStr(s:string;i:integer):string;
var
J:integer;
Num:integer;
Mstr:string;
begin
result:='';
Mstr:='';
Num:=0;
for J:=0 to Length(s)-1 do
begin
if (s[J]<>',')then
begin
Mstr:=Mstr+s[J];
end
else
begin
Inc(Num);
if Num=i then
begin
result:=trim(Mstr);
break;
end
else
Mstr:='';
end
end;
end;Top




