Bài tập  /  Bài đang cần trả lời

Tên biến tệp (hay gọi là biến tệp) phải theo đúng quy cách đặt tên. Khai báo biến tệp để sau đó có thể thực hiện các thao tác với tệp thông qua biến tệp

1 trả lời
Hỏi chi tiết
4.899
1
1
Tô Hương Liên
08/09/2017 00:53:12
1. Khai báo
Khai báo biến tập văn bản có dạng:
var <tên biến tệp>: text;
Ví dụ
vart.epl, tep2: text;
Tên biến tệp (hay gọi là biến tệp) phải theo đúng quy cách đặt tên. Khai báo biến tệp để sau đó có thể thực hiện các thao tác với tệp thông qua biến tệp.
2. Thao tác với tệp
a) Gắn tên cho biến tệp
Gắn tên tệp với biến tệp thực chất là tạo một tham chiếu giữa tệp trên đĩa (do tên tệp và đường dần tương ứng được hệ điều hành xác định) và biến tệp trong chương trình, làm cho biến tệp trở thành đại diện cho tệp. Biến tệp trở thành đối tượng trực tiếp trong chương trình để nhận các thao tác đối với tệp trên đĩa. Gán tên của một tệp cho biến tệp theo cú pháp:
Assign (<biến tệp>, <têntệ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 tuơ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
- Thủ tục mở tệp để ghi dữ liệu có dạng:

rewrite(<biến tệp>);
Trong cú pháp, biến tệp cần đã được liên kết với một tệp sau khi dùng Assign.
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ếrt 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(tepl, tentep);
reset(tepl);
hoặc
assign (tepl, 'DL.INP');
reset (tepl)
c) Đóng/ghi tệp văn bản
- Cú pháp đọc tệp văn bản:
Read(<biểrt tệp>,);
Hoặc
Reading <biển tệp>,);
Trong đó, danh sách biến là dãy tên biến 1, tên biển 2,... tên biến N. Các dữ liệu cần đọc trong tệp gán vào danh sách biến phải lần lượt có kiểu tương ứng với kiểu của biến trong danh sách biến. Nếu sai kiểu thì chương trình báo lỗi. Lỗi này thường gặp khi biến có kiểu số, dữ liệu được đọc lại là kiểu xâu.

- Cú pháp ghi tệp văn bản
write(<biến tệp>,);
hoặc
writeln (<biến tệp>,);
Trong đó, danh sách kết quả là dãy kết quả 1, kết quả 2......kết quả N. Các kết quả i có thể là biến đơn hoặc biểu thức (sổ học, quan hệ hoặc lôgíc) hoặc hằng xâu.
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
Thủ tục đóng tệp:
Close(<biến tệp>);
Trong cú pháp, biến tệp đã được liên kết với một tệp đang mở do đã dùng reset, rewrite hoặc append (append chi dùng với tệp văn bản) ở thời điểm trước đó để mở 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.

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập liên quan

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Gia sư Lazi Gia sư
×
Trợ lý ảo Trợ lý ảo