请教一个问题,Delphi的函数参数可以是数组吗,如何给他赋值?谢谢

解决方案 »

  1.   

    当然可以,可以使用low 跟 high函数取得数组的上下界
      

  2.   

    这是个例子
    type
      TArray = array of string;procedure TrimChar(s:string;var sRet : TArray);
      function CountChar(s:string; c:char):integer;
      var
        i : integer;
      begin
        result := 0;
        for i := 1 to Length(s) do
          if s[i] = c then Inc(result);
      end;
    var
      iPos : integer;
      i    : integer;begin
      SetLength(sRet, CountChar(s, ',') + 1);
      iPos := Pos(',', s);
      i := 0;
      while iPos > 0 do
      begin
        sRet[i] := Copy(s, 1, iPos - 1);
        Delete(s, 1, iPos);
        iPos := Pos(',', s);
        Inc(i);
      end;
      sRet[i] := s;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      sA : TArray;
      s  : string;
      i  : integer;
    begin
      s := 'abc,cd,mm,44';
      sA := nil;
      TrimChar(s, sA);
      for i := Low(sA) to High(sA) do
        Memo1.Lines.Add(sA[i]);
    end;