20
Bài 14 - 15

Bài 14-15 -Lớp 11: Thao tác với tệp

Embed Size (px)

DESCRIPTION

Bài giảng của bài 14-15-Lớp 11: Thao tác với tệp

Citation preview

Page 1: Bài 14-15 -Lớp 11: Thao tác với tệp

Bài 14 - 15

Page 2: Bài 14-15 -Lớp 11: Thao tác với tệp
Page 3: Bài 14-15 -Lớp 11: Thao tác với tệp

RAM

Hình nền bí mật

Page 4: Bài 14-15 -Lớp 11: Thao tác với tệp

….................... là kiểu dữ liệu có cấu trúc, rất cần thiết và hữu ích trong nhiều chương trình. ……………… là một dãy hữu hạn các phần tử cùng kiểu. Hãy điền vào chỗ trống kiểu dữ liệu phù hợp???

Câu 1:

Đáp án: Kiểu mảng

Page 5: Bài 14-15 -Lớp 11: Thao tác với tệp

Để lưu trữ dữ liệu họ tên của học sinh, ta khai báo biến HoTen có kiểu dữ liệu gì?

Câu 2:

Đáp án: Kiểu xâu

Page 6: Bài 14-15 -Lớp 11: Thao tác với tệp

Đây là kiểu dữ liệu có phạm vi giá trị từ -215 đến 215 -1và bộ nhớ lưu trữ một giá trị là 2 byte?

Câu 3:

Đáp án: Kiểu integer

Page 7: Bài 14-15 -Lớp 11: Thao tác với tệp

Khi khai báo biến biểu diễn số học sinh của một lớp, ta nên sử dụng kiểu dữ liệu nào là hợp lý và tiết kiệm bộ nhớ?

Câu 4:

Đáp án: Kiểu byte

Page 8: Bài 14-15 -Lớp 11: Thao tác với tệp

Đây là bộ nhớ có thể đọc, ghi dữ liệu trong lúc làm việc?

Gợi ý:

Page 9: Bài 14-15 -Lớp 11: Thao tác với tệp

1. Vai trò của kiểu tệp

Được l ưu 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.

L ượng th«ng tin l ưu tr÷ cã thÓ rÊt lín vµ chØ phô thuéc vµo dung l ượng ®Üa.

So sánh

Các kiểu dữ liệu: Integer, mảng, xâu,..

Kiểu dữ liệu tệp

Được lưu trữ trên RAM, không tạo ra file, mất đi khi tắt máy.

Dữ liệu lưu trữ thành file trên bộ nhớ ngoài. Không bị mất khi tắt máy.

Page 10: Bài 14-15 -Lớp 11: Thao tác với tệp

2. Phân loại tệp

Phân loại theo cách tổ chức dữ liệu

Phân loại theo cách thức truy cập

Tệp văn bản Tệp có cấu trúc

Tệp truy cập tuần tự

Tệp truy cập trực tiếp

Dữ liệu được ghi dưới dạng các kí tự theo mã ASCIIVí dụ: tài liệu, bài học, sách,…

Các thành phần được tổ chức theo một cấu trúc nhất định.Ví dụ: Dữ liệu âm thanh, hình ảnh,..

Cho phép truy cập dữ liệu bắt đầu từ đầu tệp và đi qua lần lượt tất cả các dữ liệu trước nó.

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

Page 11: Bài 14-15 -Lớp 11: Thao tác với tệp

3. Khai báo tệp văn bản

Var <Tên biến tệp> : TEXT;Cú pháp:

Ví dụ: var tep1, tep2 : text;

Yêu cầu: Khai báo 2 biến tệp có tên tepKQ, tepNguon ???

Program vd1;Uses crt;Var tep1,tep2: text;

Page 12: Bài 14-15 -Lớp 11: Thao tác với tệp

4. Thao tác với tệp

G¸n tªn tÖp

Më tÖp ®Ó ghi Më tÖp ®Ó ®äc

Ghi d÷ liÖu ra tÖp

§äc d÷ liÖu tõ tÖp

§ãng tÖp

Page 13: Bài 14-15 -Lớp 11: Thao tác với tệp

4. Thao tác với tệp văn bản

Gắn tên tệp

ASSIGN(<biến tệp>,<tên tệp>);

Tên tệp: là biến xâu hoặc hằng xâuThao tác với biến tệp Thao tác với tệp

Ví dụ: {biến tep1 gắn với tệp có tên DULIEU.txt }

ASSIGN(tep2, ’D:\TP\UCLN.bak’); {biến tep2 gắn với tệp có tên UCLN.bak nằm trong thư mục TP của ổ đĩa D }

Yêu cầu:1.Gắn biến tepKQ với tệp dữ liệu có tên ‘KQ.txt’.2.Gắn biến tepDS với tệp dữ liệu có tên ‘DSHS.txt’ được lưu trữ trong thư mục ‘Dulieu’ của ổ đĩa D3.Khai báo và gắn tên cho biến tepDiem với tệp dữ liệu có tên ‘DiemThi.txt’, được lưu trữ trong thư mục HOCSINH của ổ đĩa E

ASSIGN(tep1, ‘DULIEU.txt’) ;

ASSIGN(tep1,’DULIEU.txt’)

Tệp lưu trê

n đĩa

Tên biến tệp trong chương trình

Tên tệp

Tên tệp có đường dẫn

Tên tệp không có đường dẫn

-Tệp lưu ở thư mục chỉ ra trong đường dẫn- Ví dụ: ASSIGN(tep1,’D:\TP\UCLN.bak’);

- Tệp lưu trữ trong cùng thư mục lưu chương trình. - Ví dụ:ASSIGN(tep2,’KQ.txt’);

Page 14: Bài 14-15 -Lớp 11: Thao tác với tệp

4. Thao tác với tệp văn bản

Mở tệp

– Mở tệp để ghi

Ví dụ:

Assign(tep3,’D:\KQ.txt’);

Rewrite(tep3); Chưa có sẵn tệp KQ.txt tạo

tệp với nội dung rỗng Tệp KQ.txt đã tồn tại nội

dung cũ sẽ bị xóa.

– Mở tệp để đọc

Ví dụ:

Assign(tep3,’D:\KQ.txt’);

Reset(tep3); Mở một tệp đã tồn tại Dữ liệu cũ của tệp không bị

xóa

REWRITE (<Biến tệp>); RESET (<Biến tệp>);

Page 15: Bài 14-15 -Lớp 11: Thao tác với tệp

4. Thao tác với tệp văn bản

Thủ tục thêm dòng vào tệp

Cú pháp: APPEND(<Biến tệp>);

Chức năng: Lệnh APPEND mở tệp văn bản ra để bổ sung thêm các dòng nội dung vào cuối file.

APPEND(<biến tệp>); REWRITE(<Biến tệp>);

- Mở tệp đã tồn tại- Không xóa dữ liệu đang có trong file- Mở tệp để ghi thêm nội dung vào cuối file

-Mở tệp đã tồn tại hoặc tạo tệp mới với nội dung rỗng- Xóa dữ liệu đã tồn tại trong file.- Mở để ghi dữ liệu mới vào file.

Page 16: Bài 14-15 -Lớp 11: Thao tác với tệp

4. Thao tác với tệp văn bản

Yêu cầu áp dụng

Viết đoạn chương trình:

+ Khai báo biến tệp có tên tepNguon

+ Gắn biến tệp đó với tệp có tên ‘Nguon.txt’ được lưu trong thư mục DuLieu của ổ đĩa D.

+ Mở tệp để ghi.

Page 17: Bài 14-15 -Lớp 11: Thao tác với tệp

4. Thao tác với tệp văn bản

Đọc/ Ghi tệp

• Đọc tệp

Ví dụ:Var

tep2: TEXT;

a,b: integer;

Begin

assign (tep2, ‘dulieu.txt’);

reset (tep2); {Mở tệp để đọc}

read (tep2, a, b);

Close (tep2); {Đóng tệp}

End.

• Ghi tệp

Ví dụ:Var

tep2: TEXT;

a,b: integer;

Begin

assign (tep2, ‘dulieu.txt’);

rewrite (tep2); {Mở tệp để ghi}

a:= 2; b:= 5;

write ( tep2, a,’ ‘, b);

Close (tep2); {Đóng tệp}

End.

WRITE (<Biến tệp>, <Danh sách kết quả>);

WRITELN (<Biến tệp>, <Danh sách kết quả>);

READ (<Biến tệp>, <Danh sách biến>);

READLN (<Biến tệp>, <Danh sách biến>);

Page 18: Bài 14-15 -Lớp 11: Thao tác với tệp

4. Thao tác với tệp văn bản

Đóng tệp

CLOSE(< biến tệp>);

Ví dụ:Var tep2: TEXT;Begin

assign (tep2, ‘dulieu.txt’);rewrite (tep2); {Mở tệp để ghi}Close (tep2); {Đóng tệp}

End.

Page 19: Bài 14-15 -Lớp 11: Thao tác với tệp

4. Thao tác với tệp văn bản

Yêu cầu áp dụng

Hoàn thành đoạn chương trình:

+ Khai báo thêm biến tệp tepKQ

+ Gắn biến tệp đó với tệp có tên ‘KQ.txt’, lưu cùng thư mục với tệp ‘Nguon.txt’.

+ Ghi dữ liệu cho tepNguon. Dữ liệu ghi là ‘A B’.

+ Mở tepNguon để đọc và gán dữ liệu cho 3 biến x,y,z có kiểu dữ liệu char

+ Mở tepKQ để ghi. Ghi kết quả vừa đọc của tepNguon lên tepKQ.

Chạy chương trình và vào thư mục DULIEU trên ổ D để xem kết quả

+ Đóng 2 tệp lại.

Page 20: Bài 14-15 -Lớp 11: Thao tác với tệp

Ghi nhớ

Assign(<biến tệp>, <tên tệp>);

Rewrite(<Biến tệp>); Reset(<Biến tệp>);

CLOSE(< biến tệp>);CLOSE(< biến tệp>);

Gán tên tệp

Ghi Đọc

READ (<Biến tệp>, <Danh sách biến>);WRITE (<Biến tệp>, <Danh sách kết quả>);

Mở tệp Mở tệp

Ghi tệp Đọc tệp

Đóng tệp