15
LOGO CHƯƠNG TRÌNH TIN HỌC 11 BÀI 15: THAO TÁC VỚI TỆP 11/28/2014 1

Bai 15

Embed Size (px)

Citation preview

Page 1: Bai 15

LOGO

CHƯƠNG TRÌNH TIN HỌC 11

BÀI 15: THAO TÁC VỚI TỆP

11/28/2014 1

Page 2: Bai 15

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

Page 3: Bai 15

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

Page 4: Bai 15

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

Page 5: Bai 15

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.

Page 6: Bai 15

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

Page 7: Bai 15

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

Page 8: Bai 15

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

Page 9: Bai 15

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

Page 10: Bai 15

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

Page 11: Bai 15

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

Page 12: Bai 15

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

Page 13: Bai 15

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

Page 14: Bai 15

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

Page 15: Bai 15

LOGO

THE END!

www.themegallery.com

11/28/2014 15