我想知道是否有办法在pascal中创建一组记录。 我正在寻找互联网,并认为这是不可能的。
type
TRecord = record
StrField: string;
IntField: Integer;
end;
TSetOfRecord = set of TRecord;
答案 0 :(得分:5)
是的,这是不可能的集合成员必须是序数类型。 据我所知,你只能拥有有限数量的成员,255响铃。
似乎是比你的记录组合更多的组合,虽然不清楚什么定义了成员的唯一性。
答案 1 :(得分:1)
'记录集'没有意义。我猜你的意思是'收集记录'。如果是这种情况,您可以通过多种方式实现它。
我建议使用'开放阵列'(与'动态阵列'不同)。
你需要写几个你自己的例程,其中一个是这样的:
function RecordInCollection(const ARecord: TYourRecord; const ACollection: array of TYourRecord): Boolean;
var
Index1: Integer;
begin
Result := False;
for Index1 := Low(ACollection) to High(ACollection) do begin
Result := (ACollection[Index1].StrField = ARecord.StrField) and (ACollection[Index1].IntField = ARecord.IntField);
if Result then Exit;
end;
end;
并将其称为:
RecordInCollection(Record1,[Record2,Record3,Record4])
或者您可以使用预先声明的常量数组而不是[Record2,Record3,Record4]。