Cỏc file truy nhập tuần tự (Sequential Files)

Một phần của tài liệu Ngôn ngữ lập trình Fortran và ứng dụng trong khí tượng thủy văn (Trang 96 - 98)

Cỏc file được sử dụng trong tất cả cỏc thớ dụ từ trước tới nay gọi là

file truy nhập tuần tự vỡ một khi file đó được tạo ra, ta khụng thể cập nhật một bản ghi đơn lẻ nào trong nú. Muốn thay đổi một bản ghi, ta phải đọc cỏc thụng tin trong bản ghi, sửa đổi nú và sau đú ghi vào một file khỏc. Bõy giờ ta sẽ xột lệnh OPENphức tạpcú thờm những chỉđịnh khỏc so với

96

những thớ dụ trước đõy:

OPEN (UNIT = Biu thc nguyờn, * FILE = Biu thc ký t, * ACCESS = Biu thc ký t, * STATUS = Biu thc ký t, * FORM = Biu thc ký t, * IOSTAT = Biến nguyờn, * RECL = Biu thc nguyờn, * BLANK = Biu thc ký t,

* ERR = Nhón lnh chuyn điu khin)

Biểu thức nguyờn trong chỉ định UNIT, thường là một hằng, được sử dụng trong cỏc lệnh READ hoặc WRITE để chỉ đơn vị file được dựng.

Biểu thức ký tự trong chỉ định FILE là tờn của file cần mở. Hai chỉ định vừa rồi chỳng ta đó quen dựng trong cỏc chương trước.

Biểu thức ký tự trong chỉ định ACCESS phải cú giỏ trị bằng 'DIRECT'' hoặc ‘SEQUENTIAL' dựng để chỉ file thuộc loại truy cập trực tiếp hay truy cập tuần tự. Nếu vắng mặt chỉ định này thỡ ngầm định là 'SEQUENTIAL' như trước đõy chỳng ta đó dựng.

Biểu thức ký tự của chỉ định STATUS cú thể cú một trong những giỏ trị là ‘NEW' (để chỉ file mới sẽ tạo ra bằng lệnh WRITE), hoặc 'OLD' (file đang tồn tại), hoặc ‘UNKNOWN’ (chưa rừ), hoặc 'SCRATCH' (file xuất, sẽ bị xúa khi chương trỡnh kết thỳc).

Biểu thức ký tự trong chỉ định FORM hoặc cú giỏ trị là 'FORMATTED' hoặc là 'UNFORMATTED' hay ‘BINARY’. Cỏc file FORMATTED cú thể dựng với cả lệnh READ và WRITE cú định dạng hoặc dựng với cỏc lệnh nhập, xuất đơn giản. Trong file UNFORMATTED

dữ liệu được truy cập như là cỏc xõu nhị phõn, khụng phải là cỏc số hay cỏc ký tự. Nếu chỉ định FORM vắng mặt thỡ ngầm định sẽ là ‘FORMATTED’ đối với cỏc file tuần tự và ‘UNFORMATTED’ đối với cỏc file trực tiếp.

IOSTAT cú thể dựng để khụi phục lỗi khi mở file. Nếu khụng cú lỗi khi mở file, biến nguyờn sẽ cú giỏ trị 0. Nếu cú lỗi, thớ dụ khụng tỡm thấy file với tờn đó chỉ định, thỡ một giỏ trị khỏc 0 sẽ được lưu trong biến. Người ta thường kiểm tra giỏ trị của biến này để quyết định hành động tiếp theo. Thớ dụ

CHARACTER TEN *12, TEMP *70 PRINT *, ‘GO TEN FILE’

READ (*, ‘(A12)’) TEN

OPEN (UNIT=15, FILE=TEN, STATUS=’OLD’, IOSTAT=IERR) IF (IERR .EQ. 0) THEN

. . . . . . . . . ELSE

PRINT*, ‘LOI MO FILE ‘,IERR END IF

Đặc tả IOSTAT cũng cú thể dựng với cỏc lệnh READ và WRITE. Chỉ định RECL cần cho cỏc file truy cập trực tiếp, khụng dựng với cỏc file truy cập tuần tự. Biểu thức nguyờn nú chỉ định độ dài của một bản ghi.

Biểu thức ký tự của chỉ định BLANK cú thể là 'NULL' hoặc 'ZERO'. Nếu đặc tả là 'NULL' cỏc dấu trống trong cỏc trường số bị bỏ qua, nếu là 'ZERO' cỏc dấu trống được xem là cỏc số 0. Ngầm định là 'NULL'.

97

Chỉ định ERR là tuỳ chọn và cú giỏ trị để xử lý lỗi. Nếu lỗi xảy ra trong khi thực hiện lệnh OPEN hay một lệnh nào đú cú chứa chỉ định này thỡ chương trỡnh sẽ chuyển điều khiển tới lệnh cú nhón ghi trong chỉ định ERR thay vỡ tạo ra lỗi thực hiện chương trỡnh. Chỉ định ERR cũng dựng với cỏc lệnh READ và WRITE.

Lệnh CLOSE là một lệnh thực hiện, nú ngắt một file ngoại khỏi chương trỡnh. Dạng tổng quỏt như sau:

CLOSE (UNIT = Biểu thức nguyờn,

* STATUS = Biểu thức ký tự,

* IOSTAT = Biến nguyờn,

* ERR = Nhón lệnh chuyển điều khiển)

Lệnh CLOSE và cỏc chỉ định là tuỳ chọn. Chỉ định STATUS trong lệnh CLOSE cú giỏ trị ‘KEEP’ cú nghĩa file được giữ lại, ‘DELETE’ cú nghĩa file khụng cần nữa và nờn xúa đi.

Lệnh REWIND

REWIND (UNIT = Biểu thức nguyờn,

* IOSTAT = Biến nguyờn,

* ERR = Nhón lệnh điều khiển)

dựng để chuyển về vị trớ bản ghi thứ nhất trong file tuần tự.  Lệnh BACKSPACE

BACKSPACE (UNIT = Biểu thức nguyờn,

* IOSTAT = Biến nguyờn,

* ERR = Nhón lệnh điều khiển)

chuyển vị trớ đọc ngược lại về phớa trước một bản ghi trong file tuần tự.  Lệnh ENDFILE

ENDFILE (UNIT = Biểu thức nguyờn,

* IOSTAT = Biến nguyờn,

* ERR = Nhón lệnh điều khiển)

ghi vào file một bản ghi chỉ sự kết thỳc file khi file đó được tạo ra.

Một phần của tài liệu Ngôn ngữ lập trình Fortran và ứng dụng trong khí tượng thủy văn (Trang 96 - 98)