关于动态数组的问题!(50分)

  • 主题发起人 zhouhuilun
  • 开始时间
Z

zhouhuilun

Unregistered / Unconfirmed
GUEST, unregistred user!
我先定义了这样一个记录类型:
TYPE
telcount=record
telnum:array[0..20] of char;
end;
然后我又定义了另一个记录类型:
TYPE
submit=record
usernumber:array of telcount;
end;
我有什么办法能在程序运行时动态的指定submit.usernumber的个数??
setlength没用,我试过了,不知道还有没有别的什么办法?
 
setlength(submit.usernumber, 5);
 
我试过了没用,不知道是因为什么原因???
 
TYPE
telcount=record
telnum:array[0..20] of char;
end;
TYPE
tsubmit=record
usernumber:array of telcount;
end;

var submit:tsubmit;
begin
setlength(submit.usernumber, 5);
end;
 
试过了,不行[:(]!!!

 
用变体数组吧

应该可行!
 
楼主,你到底想干什么?
不知道你怎么试的,我试过了是没有问题的,
动态数组的下标是从 0 到 Length(A) - 1

SetLength 绝对没有问题,测试通过
请看我的测试代码:
procedure TMainFrm.ToolButton9Click(Sender: TObject);
type
telcount=record
telnum:array[0..20] of char;
end;
tsubmit=record
usernumber:array of telcount;
end;
var
v: tsubmit;
begin
SetLength(v.usernumber, 10);  //最大的下标是9
v.usernumber[9].telnum := 'abcde12345';
Caption := v.usernumber[9].telnum;
end;
 
setlength好用啊!
 
当然,对多维动态数组也管用的
 
啊,我测试的时候,跟踪数据,发现不管我怎么做,它的长度都是-1,当然落,定义了它的维数
后除外。
 
搞定,多谢各位,是我自己犯了个错误,呵呵
 
顶部