注册 登录
编程论坛 Delphi论坛

谁帮我看看这段代码对不对? 返回数组类型的函数

nannancy 发布于 2011-05-15 17:03, 348 次点击
程序代码:
function TForm5.returnArray(mmView: TMemo):arResult;
var
nArMy,nMmLine,x,j,k,i:Integer;
arMy:array of Integer;
begin
  x:= mmView.Lines.Count-1;
  while  (x>0) and (mmView.Lines.Strings[x]='' )and (mmView.Lines.Strings[x-2]<>'')  do
  begin
        mmView.Lines.Delete(x);
        Dec(x);
  end;
  if mmView.Lines.Strings[mmView.Lines.Count-1]<>'GO' then
  mmView.Lines.Add('GO');
  for nMmLine := 0 to mmView.Lines.Count - 1 do
  begin
    if AnsiSameText(Trim(mmView.Lines.Strings[nMmLine]),'GO')  then
    begin
     SetLength(arMy, Length(arMy) + 1);//把GO的行号副给数组
      arMy[Length(arMy)-1]:= nMmLine;
    end;
  end;
  for i := 0 to Length(arMy) - 1 do
    Result[i]:=arMy[i];
end;
顺便问下,有人说是在参数中返回,小弟不解。。。 以前学过JAVA,貌似差别很大啊
1 回复
#2
zin59702011-05-16 15:53
如果单纯的数赋值,可以用 aryA := aryB  (两个同类型数组)

另外正常的数据定义时没有赋长度或者后面没有setlength, 直接用 数据名[i] 会报错,你函数返回 arResult,这是你自己写的一个数据类型吧。可能你定义的类型里有操作

1