字符串s:='111,222,33333,4444,55555';
整数值i:=4;
由以上两个条件得到值4444;function ReadStr(s:string;i:integer):string;
beginend;

解决方案 »

  1.   

    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;
      

  2.   

    function ReadStr(s:string;i:integer):string;
    var
     J:integer;
     Num:integer;
     Mstr:string;
    beginresult:='';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;
      

  3.   

    这个是正确的代码,呵呵,前面的str[i]要改为s[J]才成
    function ReadStr(s:string;i:integer):string;
    var
     J:integer;
     Num:integer;
     Mstr:string;
    beginresult:='';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;
      

  4.   

    修改了一下,应该是对的:function ReadStr(s:string;i:integer):string;
    var
     J:integer;
     Num:integer;
     Mstr:string;
    beginresult:='';
    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;