Tệp truy nhập trực tiếp

Một phần của tài liệu Giáo trình lập trình Pascal căn bản pdf (Trang 73 - 74)

I. Kiểu bản ghi

4.Tệp truy nhập trực tiếp

Pascal chuẩn chỉ định nghĩa một kiểu tệp truy nhập tuần tự. Tuy nhiên các bộ nhớ ngoài như đĩa từ,... có thể cho phép tính toán tọa độ của một phần tử bất kỳ trong tệp (vì độ dài của các phần tử là như nhau), do đó có thể truy nhập trực tiếp vào một phần tử của tệp mặc dù cấu tạo logic của tệp vẫn là dạng tuần tự. Trong

Turbo Pascal, để truy nhập trực tiếp vào phần tử của tệp, sử dụng thủ tục SEEK. Cú pháp:

Trang 73 Trong đó, No là số thứ tự của phần tử trong tệp (phần tử đầu tiên của tệp được đánh số 0). Gặp thủ tục này, chương trình sẽ đặt cửa sổ của tệp vào phần tử thứ No. Tiếp theo muốn đọc phần tử đó ra thì dùng Read, nếu muốn đặt giá trị mới vào dùng Write.

4 Ví dụ: Giả sử tệp Nguyen.txt trên đĩa ở thư mục hiện hành đã chứa 100 số nguyên từ 1 đến 100. Ta kiểm tra xem phần tử thứ hai (đếm từ 0) của tệp có giá trị bằng 3 không, nếu không thì sửa lại bằng một giá trị nhập từ bàn phím.

Var i: Byte;

F: File Of Byte; Answer: Char; Begin

Assign(F,’Nguyen.txt’);

Reset(F);

Seek(F,2); { Dat cua so tep vao vi tri thu 3} Read(F,i);

Writeln(‘i = ‘,i);

Write(‘Ban muon sua lai khong ?(C/K):’);

Readln(Answer);

If Answer In[‘c’,’C’] Then Begin

Seek(F,2);

Write(‘ Ban muon sua lai bang bao nhieu ?’); Readln(i);

Write(F,i); { Thay doi gia tri cua phan tu hien tai }

End; Close(F);

Readln End.

5. Các thủ tục và hàm xử lý tệp của Turbo Pascal:

a. Hàm FileSize(FileVar): Hàm cho giá trị biểu thị số phần tử của tệp FileVar. Hàm nhận giá trị 0 khi tệp rỗng.

Một phần của tài liệu Giáo trình lập trình Pascal căn bản pdf (Trang 73 - 74)