5

我想知道是否有一种方法可以用帕斯卡制作一组记录。我正在寻找整个互联网,并相信这是不可能的。

type    
  TRecord = record
    StrField: string;
    IntField: Integer;
  end;

  TSetOfRecord = set of TRecord;         
4

2 回答 2

5

是的,集合成员不可能是序数类型。据我所知,您也只能拥有有限数量的成员,255 个响铃。

似乎比您的记录中的组合更多,但尚不清楚是什么定义了成员的唯一性。

于 2013-02-16T00:21:17.497 回答
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]。

于 2013-02-17T08:17:07.880 回答