Nội dung của Bài 15: Thao tác với tệp dưới đây, các em sẽ được tìm hiểu về cách khai báo tệp, các thao tác cơ bản với tệp văn bản và cách sử dụng một số hàm và thủ tục chuẩn làm việc với tệp. Mời các em cùng theo dõi nội dung dưới đây.
Tóm tắt lý thuyết
1.1. Khai báo
Để làm việc với dữ liệu kiểu tệp ta phải sử dụng biến tệp.
Khai báo biến tệp văn bản có dạng:
var < tên biến tệp > : text;
Ví dụ 1: var tep1,tep2: text;
Khai báo trên xác định hai biến tệp văn bản tep1 và tep2.
1.2. Thao tác với tệp
a. Gắn tên tệp
Thủ tục gắn tên tệp với biến tệp:
assign(< biến tệp >, < tên tệp >);
- Trong đó: tên tệp là biến xâu hoặc hằng xâu.
- Thủ tục này đã đồng nhất biến tệp với tên tệp. Do vậy, khi thực hiện các thao tác với biến tệp, thực chất là thao tác với tệp.
Hình 1. Minh họa thao tác gắn tên tệp
- Ví dụ 3: Giả thiết có biến tệp tep1 cần gắn với tệp có tên DULIEU.DAT ta thực hiện thủ tục sau: assign(tep1,'DULIEU.DAT');
- Ví dụ 4: Để có thể đọc dữ liệu từ tệp INP.DAT trên thư mục gốc đĩa C, ta cần gắn tệp đó với một biến tệp, ví dụ là tep2 bởi thủ tục: assign(tep2,'C:\INP.DAT');
b. Mở tệp
- Tệp có thể dùng để chứa kết quả ra hoặc dữ liệu vào.
- Trước khi mở tệp, biến tệp phải được gắn tên tệp bằng thủ tục assign.
b.1. Thủ tục mở tệp để ghi dữ liệu
- Cú pháp: rewrite( < biến tệp > );
- Ví dụ 5: assign(tep3,'C:\KQ.DAT');
rewrite(tep3);
Khi thực hiện thủ tục 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ó, thì nội dung cũ sẽ bị xóa để chuẩn bị ghi dữ liệu mới.
b.2. Mở tệp để đọc dữ liệu
- Cú pháp: reset( < biến tệp > );
- Ví dụ 6: Để đọ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. Đọc/ghi tệp văn bản
- Việc đọc tệp văn bản được thực hiện giống như nhập từ bàn phím.
- Việc ghi dữ liệu ra tệp văn bản giống như ghi ra màn hình.
- Dữ liệu trong tệp văn bản được chia thành các dòng.
c.1. Đọc tệp văn bản
Cú pháp: read( < biến tệp >,< danh sách biến > );
hoặc
readln( < tên biến tệp >,< danh sách biến >);
Trong đó:
- Danh sách biến là một hoặc nhiều tên biến đơn.
- Trong trường hợp nhiều biến thì các biến phân cách nhau bởi dấu phẩy.
c.2. Ghi tệp văn bản
Cú pháp: write(< biến tệp >,< danh sách kết quả >);
hoặc
writeln( < biến tệp >,< danh sách kết quả > );
Trong đó:
- Danh sách kết quả gồm một hoặc nhiều phần tử.
- Phần tử có thể là biến đơn hoặc biểu thức (số học, quan hệ hoặc lôgic) hoặc hằng xâu.
- Trường hợp có nhiều phần tử thì các phần tử được cách nhau bởi dấu phẩy.
c.3. Ví dụ đọc/ghi tệp văn bản
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 readln(tepA, X, Y);
- Các thủ tục dùng để ghi dữ liệu vào tệp tepB có thể có như sau:
write(tepB,' A = ', A,' B = ',B,' C = ',C);
writeln(tepB,' X1 = ',(-B – SQRT(B*B- 4*A*C))/(2*A):8:3);
c.4. 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
- Sau khi làm việc xong với tệp cần phải đóng tệp.
- Việc đóng tệp là đặc biệt quan trọng sau khi ghi dữ liệu, khi đó hệ thống mới thực sự hoàn tất việc ghi dữ liệu ra tệp.
-
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.
- Cú pháp: close( < tên biến tệp > );
- Ví dụ 7: close(tep1);
2. Luyện tập Bài 15 Tin học 11
Sau khi học xong Bài 15: Thao tác với tệp, các em có thể thao tác với tệp được mô tả trong hình 1 dưới đây:
Hình 1. Thao tác với tệp
2.1. Trắc nghiệm
Các em có thể hệ thống lại nội dung kiến thức đã học được thông qua bài kiểm tra Trắc nghiệm Tin học 11 Bài 15 cực hay có đáp án và lời giải chi tiết.
-
- A. var < tên tệp > : txt;
- B. var < tên biến tệp > : txt;
- C. var < tên tệp > : text;
- D. var < tên biến tệp > : text;
-
- A. Gắn tên tệp cho biến tệp
- B. Mở tệp để ghi dữ liệu vào tệp
- C. Mở tệp để đọc dữ liệu từ tệp
- D. Đóng tệp
-
- A. < biến tệp > := < tên tệp >;
- B. < tên tệp > := < biến tệp >;
- C. assign ( < biến tệp > , < tên tệp > );
- D. assign ( < tên tệp > , < biến tệp > );
Câu 4-10: Mời các em đăng nhập xem tiếp nội dung và thi thử Online để củng cố kiến thức về bài học này nhé!
3. Hỏi đáp Bài 15 Tin học 11
Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học HOC247 sẽ hỗ trợ cho các em một cách nhanh chóng!
Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!
-- Mod Tin Học 11 HỌC247