Thủ tục mở tệp để ghi dữ liệu: Rewrite; {mở ra để ghi dữ liệu vào} Khi gäi thñ tôc nµy th× tÖp cha cã tªn th× tÖp sÏ được tạo ra với nội dung rỗng còn nếu đã có tên thì néi dung cò sÏ b[r]
Trang 1Chương V Tệp và thao tác với tệp Bài 14+15: Kiểu dữ liệu tệp và thao tác với tệp
I Mục đích yêu cầu
1 Kiến thức
- Học sinh biết vai trò của kiểu dữ liệu tệp
- Học sinh biết có 2 cách phân loại tệp
- Học sinh biết khai báo biến tệp và thao tác cơ bản với tệp văn bản
2 Kỹ năng
Dần dần hình thành kỹ năng về thao tác với tệp văn bản
3 Thái độ
- Rèn luyện cho học sinh có ý thức trữ dữ liệu một cách khoa học, phòng chống mất mát thông tin hoặc nhiễm vi rút
II Phương pháp, dụng cụ
- Sử dụng thuyết trình, giảng giải, gợi ý nêu vấn đề
- Dùng bảng in sẵn hinhg 16 SHK và chuẩn bị máy chiếu
III Nội dung
Nội dung - Hoạt động của giáo viên Hoạt động của học sinh
HĐ1: Đặt vấn đề
Trong các giờ thực hành đã học, sau khi chạy
nhiên muốn sử dụng kết quả đó về sau thì không
(nó không trữ lâu dài Q Để khắc phục
1 Vai trò của tệp
C_hỏi: Trong máy tính có những loại bộ nhớ nào ?
loại bộ nhớ nào không bị mất dữ liệu khi tắt máy ?
C_hỏi 2: Vậy theo em thì có các kiểu dữ liệu đã học
trữ ở bộ nhớ nào ?
C-Hỏi 3: Bộ nhớ trong hay bộ nhớ ngoài có dung
lớn hơn ?
Gv: Chốt lại:
Dữ liệu kiểu tệp trữ lâu dài ở bộ nhớ ngoài
(Đĩa từ, CD, và không bị mất khi tắt nguồn điện
b dữ liệu trữ dữ liệu trên tệp có thể rất lớn
và chỉ phụ thuộc vào dung đĩa
2 Phân loại tệp và thao tác với tệp
Gv: Giới thiệu cho học sinh có 2 loại tệp ( không
đòi hỏi học sinh hiểu cặn kẽ 2 loại tệp)
- Theo cách tổ chức dữ liệu:
Tệp văn bản là tệp được ghi dưới dạng các kí tự
theo bảng mã ASCII Trong tệp văn bản dãy kí tự
kết thúc bởi kí tự xuống dòng hay kí tự kết thúc tệp
tạo thành một dòng.
Tệp dữ liệu có cấu trúc là tệp mà các thành phần
của nó được tổ chức theo một cấu trúc nhất định.
HS: Chú y nghe giảng
Hs Trả lời
Tệp dữ liệu dạng văn bản xuất hiện ở dạng ở đâu ?
Ví dụ: Tệp hình ảnh, âm thanh…
Trang 2- Theo cách thức truy cập
Tệp truy cập tuần tự: Bằng cách đi từ đầu tệp và đi
qua lần lượt các dữ liệu đến vị trí cần truy cập.
Tệp truy cập trực tiếp: Cho phép tham chiếu đến dữ
liệu cần truy cập bằng cách xác định trực tiếp vị trí
của dữ liệu đó.
GV Có 2 thao tác cơ bản đối với tệp là đọc và ghi
dữ liệu ta xem xét trong ngôn ngữ lập trình Pascal
các thao tác đó đựơc thể hiện
tệp văn bản ?
3 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;
Vd: Var tep1,tep2:text;
4 Thao tác với tệp
a Gắn tên tệp.
Gv: Giải thích cho học sinh tại sao phải gắn tên tệp
cho biến tệp, rồi ra thủ tục
Để truy cập đến tệp ta thông qua tên tệp Tên tệp là
biến xâu hoặc hằng xâu ví dụ: 'Dulieu.dat'
Trong lập trình ta không thao tác trực tiếp trên tệp
mà thông qua biến tệp Biến tệp NNLT sử
dụng làm đại diện cho tệp
Do vậy để thao tác với tệp
tệp cho biến tệp bằng thủ tục
Assign(<biến tệp>, <tên tệp>);
Trong đó: Biến tệp là biến khai báo ở mục 3
Tên tệp là biến xâu hoặc hằng xâu
Ví dụ: tên tệp:='Kq.txt'
Tên tệp:='C:\TP\BaiTap\dulieu.int'
Ví dụ gắn tên tệp vào biến:
Assign(tep1,'kq.txt');
assign(tep2,'C;\Tp\baitap\dulieu.int');
b.Mở tệp
Xét 2 tình huống: em cần mở mở tin học ra: Mở ra
để đọc và mở ra để ghi
Thủ tục mở tệp để ghi dữ liệu:
Rewrite(<biến tệp>); {mở ra để ghi dữ liệu vào}
Khi gọi thủ tục này thì tệp
tạo ra với nội dung rỗng còn nếu đã có tên thì
nội dung cũ sẽ bị xoá và chuẩn bị ghi dữ liệu mới
ví dụ: assign(tep1,'kq.txt');
Rewrite(tep1);
Thủ tục mở tệp để đọc dữ liệu
Reset(<biến tệp>); {mở ra để đọc dữ liệu vào}
ví dụ
assign(<tep2,'c:\tp\baitap\dulieu.int');
reset(tep2);
Nhấn mạnh
phải gắn tên tệp cho biến tệp đồng thời biến tệp
Học sinh lấy ví dụ minh hoạ
Học sinh chú ý nghe và ghi
Hs tự ra cách khai báo tên tệp
Nếu học sinh khá giỏi ta có thểt
Reset(bien tệp);
Hàm IoResult =0 nếu mở thành công và khác 0 nếu có tệp tồn tại
K& tự với lệnh Rewrite
Học sinh ghi chép
Trang 3phải
c Đọc, ghi tệp văn bản
Gv: Để nhập dữ liệu từ bàn phím và để in dữ liệu
lên màn hình ta dùng thủ tục gì ?
Gv: Giới thiệu các thủ tục đọc dữ liệu từ tệp và ghi
dữ liệu vào tệp
Thủ tục đọc dữ liệu từ tệp:
Read(<tên biến tệp>,< danh sách biến>);
Hoặc
Readln(<tên biến tệp>,< danh sách biến>);
Ghi dữ liệu và tệp:
Write(<tên biến tệp>,< danh sách kết quả>);
Hoặc
Writeln(<tên biến tệp>,< danh sách kết quả>);
Ví dụ ta khai báo
Var tep1, tep2:text;
begin
assign(tep1,'Dulieu.int');
reset(tep1);
assign(tep2,'Dulieu.out');
rewrite(tep2);
{ có thủ tục đọc tệp: tep1 và ghi tệp: tep2
read(tep1,a,b);
readln(tep1,a,b,c);
write(tep2,c,d);
writeln(tep2,a,c,(-b+sqrt(delta))/(2*a):5:2);
* Một số hàm thường dùng đối với tệp văn bản
Hàm eof(<biến tệp>);
Trả về kết quả true khi cuối tệp và lại
Hàm eoln(<biến tệp>);
Trả và kết quả true khi con trỏ văn bản đang ở cuối
dòng
d Đóng tệp
I ra lý do phải đóng tệp
Vì khi không đóng tệp với việc ghi dữ liệu sẽ không
tồn tại dữ liệu ở trong tệp
Câu lệnh : Close(<biến tệp>);
ví dụ:
Close(tep1);
Close(tep2);
Học sinh tự lấy ví dụ
Hs trả lời câu hỏi
Hs ghi và trả lời sự khác nhau giữa thủ tục nhập vào từ bản phím và thủ tục nhập, và ghi dữ liệu vào tệp
IV Củng cố
- Gọi học sinh khái quát lại vai trò của tệp và phân loại tệp
- Học sinh khái quát lại các thao tác phải thực hiện đọc và ghi dữ liệu từ tệp
- Cho học sinh làm một số bài tập trắc nghiệm khách quan
Trang 4Hãy khoanh tròn vào đáp đúng trong những câu hỏi sau:
Câu 1: Để gán tệp cho biến tệp ta dùng thủ tục
a assign(<Tên tệp>,<biến tệp>); b assign(<biến tệp>,<tên tệp>);
c assign(<biến tệp>;<tên tệp>); b assign(<Tên tệp>.<biến tệp>);
Câu 2: Sau khi gán tên tệp cho biến tệp ta mở tệp để ghi dữ liệu vào tệp ta dùng thủ tục:
a Reset(<biến tệp>); b Reset(<tên tệp>);
c Rewrite(<biến tệp>); d Rewrite(<tên tệp>);
Câu 3: Để đọc dữ liệu từ tệp ra biến ta dùng thủ tục
a Read(<tên tệp>,<danh sách biến>); b Read(<biến tệp>,<danh sách biến>);
c Write(<biến tệp>,<danh sách biến>); d writeln(<biến tệp>,<danh sách biến>);
Câu4: Dữ liệu kiểu tệp được lưu trữ
c I trữ trên Ram d Trên bộ nhớ ngoài
Câu 5 Trong Pascal để khai báo biến tệp văn bản ta sử dụng cú pháp
a Var < Tên tệp>: Text; b Var <tên tệp> : String;
c Var < Tên biến tệp>: Text; c Var < tên biến tệp> : String;
Câu6: Để thao tác với tệp
a Ta có thể gán tên tệp cho biến tệp, hoặc sử dụng trực tiếp tên tệp cũng $
b Ta nhất thiết phải gán tên tệp cho tên biến tệp
c Ta sử dụng trực tiếp tên tệp trong
d Ta nhất thiết phải sử dụng trực tiếp tên tệp trong