File truy cập tuần tự không định dạng

Một phần của tài liệu Giáo trình Ngôn ngữ lập trình Fortran 90: Phần 2 (Trang 36 - 37)

L 2= EN_TRIM(TEN) 3 = EN_TRIM(ST1)

7.3.3 File truy cập tuần tự không định dạng

File tuần tự không định dạng đ−ợc tổ chức hơi khác nhau một ít giữa các dịng máy khác nhau cũng nh− giữa các trình biên dịch Fortran khác nhau. Sau đây ta sẽ xét đến loại file này đối với trình biên dịch Microsoft Fortran PowerStation.

Các bản ghi trong file tuần tự khơng định dạng có thể có độ dài biến đổi. File tuần tự không định dạng đ−ợc tổ chức thành từng khúc 130 byte hoặc nhỏ hơn, đ−ợc gọi là các khối vật lý. Mỗi khối vật lý bao gồm dữ liệu gửi vào file (cho đến 128 byte) và 2 byte chỉ độ dài do trình biên dịch chèn vào. Các byte độ dài cho biết mỗi bản ghi bắt đầu và kết thúc ở đâu. Mỗi bản ghi lôgic tham chiếu đến một bản ghi không định dạng chứa một hoặc nhiều hơn các khối vật lý. Các bản ghi lơgic có thể lớn tùy ý; trình biên dịch sẽ biết cung cấp số khối vật lý cần thiết để chứa.

Khi tạo một bản ghi lơgic gồm nhiều hơn một khối vật lý, trình biên dịch đặt byte độ dài bằng 129 để chỉ rằng số liệu trong khối vật lý hiện tại sẽ nối tiếp vào khối vật lý tiếp theo. Ví dụ, một bản ghi lơgic có độ dài 140 byte sẽ đ−ợc tổ chức nh− trên hình 7.4.

Ví dụ 7.8. Ch−ơng trình sau đây sẽ tạo một file tuần tự không định dạng. Cấu trúc

dữ liệu trong file đ−ợc mơ tả trên hình 7.5.

CHARACTER xyz(3) INTEGER(4) idata(35)

DATA idata /35 * -1/, xyz /'x', 'y', 'z'/ OPEN (3, FILE='TEST3.TXT',FORM='UNFORMATTED')

WRITE (3) idata WRITE (3) xyz CLOSE (3) END

Ta thấy file dữ liệu đ−ợc tạo gồm hai bản ghi lôgic. Bản ghi thứ nhất chứa dữ liệu của mảng idata gồm 35 x 4 = 140 byte. Bản ghi thứ hai chứa dữ liệu của mảng xyz, chiếm 3 byte. Vì bản ghi thứ nhất có độ dài lớn hơn 128 byte, nên nó đ−ợc l−u trữ trên hai khối vật lý. Khối thứ nhất: từ byte thứ 2 đến byte thứ 131, với 128 byte dữ liệu và 2 byte chỉ độ dài đ−ợc đặt bằng 129, hàm nghĩa rằng dữ liệu của bản ghi này vẫn còn đ−ợc chứa tiếp ở khối tiếp theo. Khối thứ hai: từ byte thứ 132 đến byte thứ 145, gồm 12 byte dữ liệu và 2 byte độ dài đ−ợc đặt bằng 12. Bản ghi thứ hai chỉ gồm 3 byte nên nó đ−ợc chứa trọn vẹn trên một khối vật lý.

Hình 7.4 Cấu trúc file tuần tự khơng định dạng

Hình 7.5 Cấu trúc file TEST3.TXT

Một phần của tài liệu Giáo trình Ngôn ngữ lập trình Fortran 90: Phần 2 (Trang 36 - 37)

Tải bản đầy đủ (PDF)

(122 trang)