Upload
thi-thanh-thuan-tran
View
212
Download
1
Embed Size (px)
Citation preview
LOGO
CHƯƠNG TRÌNH TIN HỌC 11
BÀI 15: THAO TÁC VỚI TỆP
11/28/2014 1
LOGO
I. KIỂM TRA BÀI CŨ
Câu 1: Nêu một số trường hợp cần phải dùng tệp?
Câu 2: Các thao tác cơ bản của kiểu dữ liệu tệp?
Câu 1: - Người dùng muốn lưu trữ dữ liệu lâu dài,
dung lượng dữ liệu lớn, và không bị mất khi tắt
nguồn điện.Câu 2: Hai thao tác cơ bản đối với tệp là ghi dữ liệu vào
tệp và đọc dữ liệu từ tệp.
11/28/2014 2
LOGO
II. THAO TÁC VỚI TỆP
G
H
I
T
Ệ
P
Đ
Ọ
C
T
Ệ
P
Mở tệp để ghi
Khai báo biến
Gắn tên tệp
Ghi dữ liệu ra tệp
Đóng tệp
Đọc dữ liệu từ tệp
Mở tệp để đọc
Khái quát bài học
11/28/2014 3
LOGO
II. THAO TÁC VỚI TỆP
1. Khai báo Khai báo biến tệp văn bản.
Cú pháp:
Var <tên biến tệp>: text;
Ví dụ: var a, b: text;Muốn khai báo biến
file kiểu tệp và 1 biến
x kiểu số thực thì phải
làm như thế nào??
Var file: text;
x: real;
Tên biến tệp(biến tệp) phải
theo đúng quy tắc đặ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.
Tên biến tệp khác với tên tệp.
Để khai báo biến x thuộc
kiểu số nguyên trong ngôn
ngữ Pascal???
11/28/2014 4
LOGO
II. THAO TÁC VỚI TỆP
2. Thao tác với tệp
a. Gắn tên với 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 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.
Cú pháp: assign(<biến tệp>,<tên tệp>);
Ví dụ1: assign (tep1,’Dulieu.txt’);
Biến tep1 được gắn đại diện cho tệp có tên Dulieu.txt
Là biến xâu, hằng xâu.
11/28/2014 5
Chúng ta không thể thao tác trực tiếp với tệp bằng tên
tệp mà phải thông qua biến tệp Tạo một tham chiếu
giữa tệp và biến tệp.
LOGO
II. THAO TÁC VỚI TỆP
b. Mở tệp.
2 kiểu
Mở tệp để ghi. Mở tệp để đọc.
11/28/2014 6
LOGO
II. THAO TÁC VỚI TỆP
Xem mục 2.b SGK trang 84, và cho biết thủ tục mở tệp để ghi?Rewrite (<biến tệp>);
b. Mở tệp.
Biến tệp cần phải được liên kết
với 1 tệp sau khi dùng assign.
Lưu ý: Nếu như trên ổ F chưa có
tệp ViDu.docx thì tệp sẽ được
tạo rỗng. Nếu có, thì tệp cũ bị
xoá và tạo tệp mới để chuẩn bị
ghi dữ liệu mới.
11/28/2014 7
LOGO
II. THAO TÁC VỚI TỆP
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>);
Ví dụ:
assign(tep3,’BaiTap.docx’);
reset(tep3);
rewrite:Mở tệp để ghi dữ liệu.
Tệp khi được mở sẽ không có
dữ liệu.
reset:Mở tệp để đọc dữ liệu.
Tệp phải tồn tại trên thư mục
gốc và không bị xóa dữ liệu
khi được mở ra.
Hoạt động nhóm:(2
phút) Kết hớp SGK
quan sát 2 kiểu mở
tệp trên hãy cho
biết sự khác nhau
giữa chúng.
11/28/2014 8
LOGO
II. THAO TÁC VỚI TỆP
c. Đọc/ghi tệp văn bản
Cú pháp:Read(<biến tệp>,<danh sách biến>);
Hoặc
Readln(<biến tệp>,<danh sách biến>);
Var f : text;
s: string[5];
x: longint;
Begin
assign(f,’BT.txt’);
reset(f);
read(f,s,x);
writeln(s);
writeln(x);
readln
End.
Nhìn vào câu lệnh
bên thì đâu là biến
tệp, danh sách biến?
Biến tệp: f
Danh sách biến: s, x
11/28/2014 9
LOGO
II. THAO TÁC VỚI TỆP
Vậy thủ tục ghi tệp
văn bản là gì?
Cho biết thủ tục
ghi dữ liệu ra
màn hình?Write(<danh sách kết
quả>);
Write(<biến
tệp>,<danh sách
kết quả>);
write(<Biến tệp>, <Danh sách kết quả>);
writeln (<Biến tệp>, <Danh sách kết quả>);
Danh sách kết quả gồm 1 hay nhiều phần tử: phần
tử có thể là biến, hằng xâu hoặc biểu thức.
Var f : text;
s: string[5];
x: longint;
Begin
assign(f,’BT.txt’);
reset(f);
read(f,s,x);
writeln(f,’s = ‘, s,’ x = ‘,x);
readln
End.
11/28/2014 10
LOGO
II. THAO TÁC VỚI TỆP
Thảo luận nhóm: cho biết kết
quả được xuất ra màn hình ở
ví dụ trước?
Giả sử: tệp BT.txt chỉ có 1
dòng abcde1234
s = ‘abcde’
x = 1234
d. Đóng tệp.
Cú pháp: close(<biến tệp>);
Biến tệp đã được liên kết
với một tệp đang mở do đã
dùng reset, rewrite ở thời
điểm trước đó để mở tệp.
Ví dụ: close(f);
Vì sao sau khi
làm việc xong với
tệp cần phải đóng
tệp lại?
Vì khi đó hệ thống mới thực sự
hoàn tất việc ghi dữ liệu ra tệp.
11/28/2014 11
LOGO
III. Kiến thức bổ sung
Hàm eof (<biến tệp>);
Hàm chuẩn
Hàm eoln (<biến tệp>);
Một số hàm chuẩn thường gặp khi làm việc với tệp.
Cho biết con trỏ tệp đã
ở vị trí cuối tệp hay
chưa. Nếu trỏ tệp ở
cuối tệp thì hàm eof trả
lại giá trị True.Ngược
lại trả về false.
Cho biết con trỏ tệp đã
ở vị trí cuối dòng hay
chưa. Nếu trỏ tệp ở
cuối dòng thì hàm eoln
trả lại giá trị True.
Ngược lại trẻ về false.
11/28/2014 12
LOGO
Củng cố kiến thức
Các thao tác với tệp:
Khai báo biến tệp văn bản:
Var <Tên biến tệp> : text;
Gắn tên tệp:
Assign(<Tên biến tệp>);
Mở tệp:
Để đọc: reset(<Tên biến tệp>);
Để ghi: rewrite(<Tên biến tệp>);
Đọc/ghi tệp văn bản:
Đọc: read(<biến tệp>,<danh sách biến>);
Ghi: write(<biến tệp>,<danh sách kết quả>);
Đóng tệp:
Close(<biến tệp>);
Cả lớp làm bài trắc nghiệm
trong 5’, lấy 5 em nộp bài
nhanh nhất.11/28/2014 13
LOGO
Bài Tập Về Nhà Và Dặn Dò.
Làm bài tập ở sách bài tập: Từ bài 5.1 5.6 trang 53 - 54.
Học sinh xem lại các ví dụ trong sách giáo khoa ở trang 84-
85-86
Yêu cầu học sinh xem trước bài 16”ví dụ làm việc với
tệp”trang 87.
11/28/2014 14
LOGO
THE END!
www.themegallery.com
11/28/2014 15