Em hãy nêu 11 cú pháp liên quan đế tệp, mỗi cú pháp cho 1 ví dụ?
2 câu trả lời
a) Gắn tên cho biến tệp
Ví dụ
Assign (tep1, 'DULIEU.DAT');
Trong đó, tên tệp là hằng xâu kí tự hoặc giá trị của một biểu thức kiểu xâu kí tự. Tất cả các phép toán trên biến tệp sẽ tác động tới tệp tên tệp. Sau khi gọi thủ tục Assign khác thực hiện cũng trên biến tệp này (nghĩa là lúc đó biến tệp được chuyển sang gắn kết với tệp khác). Tên tệp có thể gồm những đường dẫn chứa ổ đĩa, danh sách các thư mục liên tiếp cách nhau dấu đường dẫn, cuối cùng là tên tệp:
<ổ đĩa>:\<tên thưmục>\<tên thưmục>\...\<tên thưmục>\<tên tệp>
Ví dụ
Assign (tep2, 'C: \INP. DAT');
Độ dài lớn nhất cùa tên tệp là 79 kí tự. Đặc biệt khi tên tệp là xâu rỗng (độ dài xâu bằng 0) thì biến tệp được gán cho các tệp vào/ra chuẩn. Các tệp vào/ra chuẩn được quy định tương ứng với thiết bị nào là tùy thuộc vào sự bổ sung cùa mỗi chương trình đích Pascal, nhưng thường quy định tệp input chuẩn là bàn phím, tệp output chuẩn là màn hình.
b) Mở tệp
Ví dụ
assign(tep3, 'C'\KQ.DAT');
rewrite(tep3);
- Khi thực hiện rewrite(tep3), nếu trên thư mục gốc của ổ đĩa C chưa có tệp KQ.DAT, thì tệp sẽ được tạo với nội dung rỗng. Nếu đã có, nội dung cũ sẽ bị xóa để chuẩn bị ghi dữ liệu mới.
- Sử dụng thủ tục reset mở tệp văn bản đã tồn tại để đọc dữ liệu.
Cú pháp:
reset(<biến tệp>);
Trong cú pháp, biến tệp cần phải là đã được gắn kết với một tệp (dùng assign). Nếu tệp này không tồn tại thì thực hiện reset sẽ gặp lỗi. Nếu tệp đã mở thì nó sẽ đóng lại rối sau đó mở lại. Vị trí con trỏ tệp sau lời gọi reset là đầu tệp.
Ví dụ
Để đọc dữ liệu từ tệp DL.INP, ta có thể mở tệp bằng các thủ tục:
tentep:= 'DL.INP';
assign(tep1, tentep);
reset(tep1);
hoặc
assign (tep1, 'DL.INP');
reset (tep1)
c) Đóng/ghi tệp văn bản
Ví dụ
Giả sử trong chương trình có khai báo:
var tepA, tepB: text;
và tệp tepA được mở để đọc dữ liệu, còn tệp tepB dùng để ghi dữ liệu.
Các thủ tục dùng để đọc dữ liệu từ tệp tepA có thể như sau:
Read(tepA, A, B, C) ;
Hoặc
Read(tepA, A, B, C) ;
- Một số hàm chuẩn thường dùng trong khi đọc/ghi tệp văn bản:
Hàm eof (<biến tệp>) trả về giá trị true nếu con trỏ tệp đang chỉ tới cuối tệp. Hàm eoln( <biến tệp>) trả về giá trị true nếu con trỏ tệp đang chỉ tới cuối dòng.
d) Đóng tệp
Ví dụ
close(tep1);
close(tep2);
Sau khi đóng một tệp vẫn có thể được mở lại. Khi mở lại tệp, nếu vẫn dùng biến tệp cũ thì không cần phải dùng thủ tục assign gắn lại tên tệp.
Cho mk ctlhn nha
*Cú pháp:
1. var < tên biến tệp > : text;
2. assign(< biến tệp >,< tên tệp >);
3. rewrite(< biến tệp >);
4. reset(< biến tệp >);
5. read(< biến tệp >,< danh sách biến >);
6. readln(< tên biến tệp >,< danh sách biến >);
7. write(< biến tệp >,< danh sách kết quả >);
8. writeln(< biến tệp >,< danh sách kết quả >);
9. eof(<biến tệp >);
10. eoln(< biến tệp >);
11. close(< tên biến tệp >);
*Ví dụ (có cái kèm giải thích)
1. var f:text;
2. assign(f,'DAYCON.INP');
3. rewrite(f);
4. reset(f);
5. read(f,n); (đọc từ tệp f biến n)
6. readln(f,n); (đọc từ tệp f biến n rồi xuống hàng)
7. write(f,n); (viết vào tệp f biến n)
8. writeln(f,n); (viết vào tệp f biến n rồi xuống hàng)
9. eof(f); (cho đến khi hết tệp f)
10. eoln(f); (cho đến khi hết hàng f)
11. close(f); (đóng tệp f)