数据类型之记录(record)

来源:互联网 发布:红色高棉 知乎 编辑:程序博客网 时间:2024/05/17 22:55

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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 MLRecorddo
  begin
    FirstName := 'Bruce';
    LastName := 'Reisdorph';
    Address := '123 Inspiration Pt.';
    City := 'Merced';
    State := 'CA';
    Zip := 99999;
  end;
  { with可以减少键入量,同时也使程序可读性更强}
end;

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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;
0 0