Mặc dù mảng trong Pascal cho phép định nghĩa kiểu biến chứa nhiều dữ liệu cùng loại, nhưng kiểu bản ghi trong Pascal do người dùng định nghĩa, cho phép kết hợp dữ liệu đa dạng.
Bản ghi trong Pascal chứa nhiều trường khác nhau. Ví dụ, để theo dõi thông tin sách trong thư viện, bạn có thể quản lý các thuộc tính sau đây của từng cuốn sách:
- Tiêu đề sách
- Tác giả của tác phẩm
- Phân loại theo thể loại
- Mã số định danh sách
Khái niệm về bản ghi trong Pascal
Để định nghĩa bản ghi trong Pascal, bạn sử dụng câu lệnh khai báo kiểu. Kiểu bản ghi trong Pascal có cấu trúc như sau:
Dưới đây là ví dụ về việc khai báo kiểu bản ghi Book:
Cấu trúc tổng quát định nghĩa các biến kiểu bản ghi trong Pascal:
Biến và Kiểu Bản ghi trong Pascal
Ví dụ về khai báo biến kiểu bản ghi:
Hoặc, bạn có thể định nghĩa trực tiếp các biến của kiểu bản ghi trong Pascal như sau:
Cách truy cập các trường trong kiểu bản ghi Pascal
Để lấy thông tin từ các trường của kiểu bản ghi trong Pascal, chúng ta sử dụng toán tử truy cập (.). Nói một cách đơn giản, bạn chỉ cần kết hợp tên biến bản ghi với tên trường để truy cập dữ liệu.
Dưới đây là một ví dụ minh họa về cách truy cập các trường trong kiểu bản ghi Pascal:
Kết quả khi bạn thực hiện mã trên sẽ như sau:
Chuyển bản ghi làm đối số cho chương trình con trong Pascal
Chuyển bản ghi như một tham số cho chương trình con trong Pascal không khác gì việc chuyển bất kỳ biến hoặc con trỏ nào khác.
Trong ví dụ sau đây, bạn sẽ thấy cách truy cập các trường của bản ghi một cách dễ dàng như đã thực hiện ở ví dụ trước:
Kết quả khi bạn chạy mã trên sẽ như sau:
Sử dụng con trỏ trong kiểu bản ghi Pascal
Việc định nghĩa con trỏ tới bản ghi không khó khăn hơn việc định nghĩa con trỏ tới bất kỳ biến nào khác, như mô tả dưới đây:
Giờ đây, bạn có thể lưu trữ địa chỉ của một biến kiểu bản ghi trong một biến con trỏ, được khai báo như sau bằng từ khóa var:
var
r1, r2, ... : record-ptr;
Trước khi sử dụng những con trỏ này, bạn cần tạo bộ nhớ cho một biến kiểu bản ghi, sẽ được thao tác thông qua những con trỏ này.
Tạo mới bộ nhớ cho r1:
Tạo mới bộ nhớ cho r2:
Để truy cập các trường của một bản ghi bằng cách sử dụng con trỏ tới bản ghi đó, bạn cần sử dụng toán tử ^. như mô tả dưới đây:
Cuối cùng, giải phóng bộ nhớ đã sử dụng khi không cần thiết nữa:
Giải phóng bộ nhớ cho r1:
Giải phóng bộ nhớ cho r2:
Ví dụ dưới đây thực hiện việc giải phóng bộ nhớ thông qua con trỏ tới bản ghi Book:
Khi mã chương trình được biên dịch và thực thi, nó sẽ đưa ra kết quả như sau:
Sử dụng lệnh With trong Pascal
Như đã nói trước đó, để truy cập các trường của một bản ghi, chúng ta có thể sử dụng toán tử truy cập (.). Tuy nhiên, để giảm sự lặp lại khi thao tác với nhiều trường, chúng ta có thể sử dụng lệnh With làm giải pháp thay thế.
Dưới đây là ví dụ minh họa từ đoạn mã chương trình trong bài viết đầu tiên:
Dưới đây là đoạn mã sử dụng lệnh With:
Bài viết trên Mytour mang đến thông tin chi tiết về kiểu bản ghi trong Pascal. Nếu muốn khám phá thêm về toán tử trong Pascal, cấu trúc chung của chương trình, bạn đọc có thể tham khảo những bài viết khác trên Mytour.
Ngoài ra, bạn cũng có thể đọc thêm về Biến kiểu Variant trong Pascal tại đây.