如何获得具有特定索引的数组的长度,例如,如果我有这样的数组
TYPE T_PERSON = PACKED RECORD
Example : STRING[40];
Example2 : STRING[10];
Example3 : STRING[5];
END;
example: ARRAY [1..30] OF T_PERSON
我想分别知道example[28]
的长度example[x]
。
我可以使用LENGTH()
获得它还是有其他解决方案?
答案 0 :(得分:2)
如果它是一个数组而你想要元素的数量:
high(example)-low(example)+1;
Afaik与Free Pascal和Delphi 4+的长度也可能有用,但不要把我钉在上面。
如果你需要以字节为单位的大小,Abelisto是正确的,sizeof()就是你想要的,它也适用于记录的某些部分(例如sizeof(example.example))。
如果由于对齐字节而未使用PACKED,则总和可能不会相加。
答案 1 :(得分:0)
'example'数组的每个单元格/元素都有SizeOf(T_PERSON)。这是字节数。
目前,SizeOf(T_PERSON)是58个字节。
我无法解释的是为什么它是58字节而不是55字节(正如我所期望的那样,非打包记录)或甚至56字节(对于4字节边界对齐的打包记录)。
也许其他人可以对此有所了解。
答案 2 :(得分:0)
是的,你也可以通过长度功能获得它。
function Length(A: DynArrayType):Integer;