Sau lệnh RESET(BienTep), nếu tệp không rỗng thì cửa sổ tệp ở phần tử đầu tiên.
Nếu tệp chưa tồn tại (hoặc sai đường dẫn) thì sẽ có thông báo lỗi (File not found).
Đọc tệp với thủ tục READ READ(BienTep, b1, ..., bN); trong đó BienTep là biến tệp đã được dùng để mở tệp; b1, ..., bN là các biến có cùng kiểu thành phần của BienTep.
- Lệnh READ(BienTep, ...) sẽ đọc giá trị tại các vị trí cửa sổ ra các biến tương ứng. Đọc xong một giá trị, cửa sổ sẽ chuyển sang vị trí tiếp theo và đọc giá trị cho biến khác, cứ thế cho đến biến bN.
- Đọc tệp khi cửa sổ chưa ở cuối tệp: IF not EOF(BienTep) THEN READ(BienTep, x); - Để đọc tất cả các phần tử của tệp, dùng đoạn lệnh sau:
RESET(BienTep); WHILE not EOF(BienTep) DO BEGIN READ(BienTep, x); {Đọc một phần tử của tệp và gán vào biến x}
... {Xử lý biến x} END; - Nên đóng tệp sau khi đọc dữ liệu: CLOSE(BienTep);
VD 9.6 Lập trình đọc dữ liệu từ tệp SN.DAT (chứa các số nguyên). Cho biết trong tệp này có bao nhiêu phần tử (không dùng hàm FileSize)? Có bao nhiêu số nguyên tố?
Bài tập. Lập trình đọc dữ liệu từ tệp SN.DAT (chứa các số nguyên), ghi các số dương vào tệp SND.DAT, còn các số âm ghi vào tệp SNA.DAT.
Viết một chương trình khác để đọc dữ liệu trong các tệp SND.DAT, SNA.DAT và in chúng ra màn hình để kiểm tra.
Truy nhập tệp trực tiếp - thủ tục SEEK
TURBO PASCAL cho phép truy nhập tệp trực tiếp.
Thủ tục SEEK SEEK(BienTep, k); trong đó BienTep là biến tệp đã được dùng để mở tệp; k là chỉ số của phần tử trong tệp (phần tử đầu tiên có chỉ số là 0).
Chia sẻ với bạn bè của bạn: |