Rewrite; +Sau khi mở tệp để ghi dữ liệu: Nếu trên tệp chưa có dữ liệu, hoặc nếu trên tệp đã có d÷ liÖu th× néi dung cò sÏ bÞ xo¸=> tÖp được tạo luôn rỗng để chuẩn bị ghi dữ liệu míi.. - [r]
Trang 1Tiết 37: Bài 14: Kiểu dữ liệu tệp Bài 15: Thao tác với tệp.
Ngày soạn: 19/12/2009
3
4
5
6
I Mục tiêu
- Biết khái niệm và vai trò của kiểu tệp
- Biết hai cách phân loại tệp: Theo cách tổ chức dữ liệu và cách truy cập
- Hiểu bản chất của tệp văn bản
- Biết các bước làm việc với tệp
- Biết sử dụng một số hàm và thủ tục chuẩn
II Phương tiện dạy học
- Bảng đen, sgk,…
III Phương pháp dạy học
- Vấn đáp, thuyết trình,…
IV Tiến trình bài giảng
Nêu vấn đề: Chúng ta đã học các kiểu
dữ liệu như mảng, bản ghi, ….các dữ
liệu này được lưu trữ trong bộ nhớ
Ram, vì vậy khi mất điện dữ liệu cũng
mất Vì vậy người ta đưa ra kiểu dữ
liệu tệp, Để giải quyết những bài toán
lớn, có yêu cầu lưu trữ để xử lý nhiều
lần
GV: Nêu mục 2:
GV: Giải thích về tệp văn bản
GV: Nêu 2 thao tác cơ bản với tệp
I Kiểu dữ liệu tệp
1 Vai trò của kiểu tệp
- Đặc điểm:
+ Dữ liệu kiểu được lưu trữ lâu dài ở bộ nhớ ngoài
+ Lượng dữ liệu lưu trữ trên tệp là rất lớn
2 Phân loại tệp và thao tác với tệp.
- Xét theo cách tổ chức dữ liệu:
+ Tệp văn bản
+ Tệp có cấu trúc
- Xét theo cách truy cập:
+ Tệp truy cập tuần tự + Tệp truy cập trực tiếp
- Hai thao tác cơ bản:
+ Đọc/ghi với tệp
* Cách thức:
Trang 2?Tương tự như kiểu dữ liệu cấu trúc đã
học, để xây dựng được kiểu dữ liệu
tệp, ngôn ngữ lập trình đưa ra những
cách thức gì
GV: Nêu cách khai báo, và cho ví dụ
?Yêu cầu HS lấy ví dụ
GV: Mỗi tệp dữ liệu có một tên tệp
Tên tệp là biến xâu hoặc hằng xâu
- Do trong lập trình ta không thao tác
trực tiếp với tệp trên đĩa mà thông qua
biến tệp
- GV: Mô phỏng trực quan
- Vì vậy ta có thủ tục gán tên tệp cho
biến tệp như sau:
GV: Lấy ví dụ:
?HS lấy vd:
?Sau khi gắn tên tệp cho biến tệp, ta
thực hiện mở tệp Ta phải lưu ý điều
gì
GV:- Mở tệp nhằm 2 mục đích là mở
tệp để ghi dữ liệu mới vào tệp hoặc
mở tệp để đọc dữ liệu đã có trong tệp
GV: Nêu và lấy ví dụ
?HS lấy ví dụ
GV: Sau khi mở tệp ra, ta thực hiện
đọc/ghi dữ liệu trên tệp
GV: Nêu và lấy ví dụ
?HS lấy vd
- Khai báo biến tệp
- Mở tệp
- Đọc/ghi dữ liệu
- Đóng tệp
II Thao tác với tệp.
1 Khai báo:
VAR <Tên biến tệp> :text;
VD: Var lan: text;
2 Thao tác với tệp.
a Gắn tên tệp
- Thủ tục:
Assign (<biến têp>,<tên tệp>);
VD: Assign(f,’lan.dat’);
b Mở tệp.
- Chú ý: Trước khi thực hiện mở tệp, biến tệp phải được gắn tên tệp bằng thủ tục assign
- Mở tệp để ghi dữ liệu bằng thủ tục
Rewrite(<biến tệp>);
+Sau khi mở tệp để ghi dữ liệu: Nếu trên tệp chưa có dữ liệu, hoặc nếu trên tệp đã có dữ liệu thì nội dung cũ sẽ bị xoá=> tệp
được tạo luôn rỗng để chuẩn bị ghi dữ liệu mới
VD: rewrite(f);
- Mở tệp để đọc dữ liệu:
Thủ tục: reset(<biến tệp>);
+ Sau khi mở tệp không bị mất dữ liệu VD: reset(f);
c Đọc/ghi tệp văn bản.
- Sau khi mở tệp đã có sẵn bằng thủ tục reset, ta thực hiện đọc dữ liệu từ tệp vào danh sách biến
Thủ tục: Readln(<biến tệp>, <danh sách biến>.
Hoặc read(<biến tệp>, <danh sách biến>).
VD: readln(f, x,y);
Trang 3?HS lấy vd.
GV: Nêu một số hàm chuẩn trong khi
đọc/ ghi tệp
Hàm eof(<biến tệp>).
GV: Nêu thao tác cuối cùng đó là thao
tác đóng tệp:
GV: tổng quát các thao tác qua mô tả
hình 16(sgk);
- Sau khi mở tệp để ghi dữ liệu, ta thực hiện việc ghi dữ liệu vào tệp
Thủ tục:Write(<biến tệp>, danh sách kết quả>) hoặc writeln(<biến tệp>, danh sách kết quả>)
- Chú ý: danh sách kết quả phải được xác
định trước
VD: write(f,’hoa’);
- Một số hàm chuẩn trong khi đọc/ ghi tệp
+ Hàm eof(<biến tệp>).
+ Hàm eoln(<biến tệp>).
d Đóng tệp.
Close(<biến tệp>);
* Khi đóng tệp, hệ thống mới thực sự hoàn
tất việc ghi dữ liệu ra tệp
V Củng cố:
- Biết cách khai báo tệp và thao tác với tệp
- Làm bài tập trang 89