怎么取得二维数组的行数和列数? ( 积分: 5 )

  • 主题发起人 主题发起人 mill666
  • 开始时间 开始时间
M

mill666

Unregistered / Unconfirmed
GUEST, unregistred user!
想取得一个二维数组的行数和列数,怎么取得??
 
想取得一个二维数组的行数和列数,怎么取得??
 
可以用Length()得到第一维的元素个数,但二维就要处理一下。
可以先得到数组中的单个元素大小,由整个数组的大小除以元素大小就得到元素个数,
再除以第一维个数就得到第二维个数。写个例子:
type
DataType = integer; //第一元素类型(可以是其他类型)

var
arr :array[1..5,1..10]of DataType;
Size :integer; //整个数组大小
R, C:integer; //数组行列数
begin
Size :=sizeof(arr); //得到数组大小
R :=Length(arr); //数组第一维长(行数)
C :=Size div (R*sizeof(DataType));
showmessage('行数为:'+inttostr(R)+'列数为:'+inttostr(C));
end;
以上为二维整型数组的例子
 
。。。。。。。。。。不用这么麻烦吧。。。
比如2维数组strs:array of array of string;
setlength(strs,2,5);

用length(strs)获得的是第一维的长度=2
用length(strs[0])获得的是第2维的长度=5

当然,你要先判断下,一般我这么写
m,n:integer

m:=length(strs); //第一维长度
if m>0 then
n:=length(strs[0]);//第2维长度
 
后退
顶部