数据类型之记录(record)

在Object Pascal中用户自定的结构成为记录。它相当于C语言中的struct,Visual Basic中的Type

记录(record)是一个集合,它把一组相关数据聚集在一个存储单元里,记录中的每个元素称作字段。

记录的声明和简单访问示例:

type
  MailingListRecord = record   { 声明记录用关键字record}
    FirstName: string;
    LastName: string;
    Address: string;
    City: string;
    State: string;
    Zip: Integer;
  end;
var
  MLRecord: MailingListRecord;  { 定义一个该记录的变量}
begin
  { 当使用记录时,用小圆点来访问它的字段}
  MLRecord.FirstName := 'Bruce';
  MLRecord.LastName := 'Reisdorph';
  MLRecord.Address := '123 Inspiration Pt.';
  MLRecord.City := 'Merced';
  MLRecord.State := 'CA';
  MLRecord.Zip := 99999;

  { 使用with语句来简化上面的字段的输入}
  { with表示“用这个对象'MLRecord'做下列”}
  with MLRecord do
  begin
    FirstName := 'Bruce';
    LastName := 'Reisdorph';
    Address := '123 Inspiration Pt.';
    City := 'Merced';
    State := 'CA';
    Zip := 99999;
  end;
  { with可以减少键入量,同时也使程序可读性更强}
end;

当然记录也可以有数组,声明和使用记录数组不是太复杂,具体代码如下:

type
  MailingListRecord = record   { 声明记录用关键字record}
    FirstName: string;
    LastName: string;
    Address: string;
    City: string;
    State: string;
    Zip: Integer;
  end;
var
  MLRecord: array[0..9] of MailingListRecord;  { 定义一个记录数组}
begin
  { 当使用记录时,用小圆点来访问它的字段}
  MLRecord[0].FirstName := 'Bruce';
  MLRecord[0].LastName := 'Reisdorph';
  MLRecord[0].Address := '123 Inspiration Pt.';
  MLRecord[0].City := 'Merced';
  MLRecord[0].State := 'CA';
  MLRecord[0].Zip := 99999;

  { 使用with语句来简化上面的字段的输入}
  { with表示“用这个对象'MLRecord'做下列”}
  with MLRecord[1] do
  begin
    FirstName := 'Bruce';
    LastName := 'Reisdorph';
    Address := '123 Inspiration Pt.';
    City := 'Merced';
    State := 'CA';
    Zip := 99999;
  end;
  { with可以减少键入量,同时也使程序可读性更强}
end;

当然Object Pascal也支持可变记录,以后我们再讨论吧。

以上代码均在Delphi7中测试通过。

posted on 2011-12-19 23:25  pchmonster  阅读(8742)  评论(0编辑  收藏  举报

导航