27

Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

Embed Size (px)

Citation preview

Page 1: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
Page 2: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

TRƯỜNG THPT NGUYỄN TRUNG TRỰC

BÀI 14 – 15:

KIỂU DỮ LIỆUTỆP

THAO TÁC VỚI TỆP

Page 3: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

1. Vai trò kiểu tệp

2. Phân loại tệp và thao tác với tệp.

3. Khai báo tệp

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

NỘI DUNG

Page 4: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

1. VAI TRÒ KIỂU TỆP

- Dữ liệu 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 dữ liệu lưu trữ trên tệp có thể rất lớn và chỉ phụ thuộc vào dung lượng đĩa.

Page 5: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

1. Vai trò kiểu tệp

2. Phân loại tệp và thao tác với tệp.

3. Khai báo tệp

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

NỘI DUNG

Page 6: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

2. PHÂN LOẠI TỆP & THAO TÁC VỚI TỆP

a) Phân loại

Tệp văn bản

Phân loại

Cách thức truy cập

Tổ chức dữ liệu

Tệp có cấu trúc

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

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

Tệp văn bản: là tệp mà dữ liệu được ghi dưới

dạng kí tự theo mã ASCII. Ví dụ: sách,

báo…

Tệp 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.

Page 7: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

b) Thao tác với tệp

- Khác với mảng, số lượng phần tử của tệp không cần xác định trước.

- 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.

2. PHÂN LOẠI TỆP & THAO TÁC VỚI TỆP

Page 8: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

1. Vai trò kiểu tệp

2. Phân loại tệp và thao tác với tệp.

3. Khai báo tệp

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

NỘI DUNG

Page 9: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

3. Khai báo tệp

- Để làm việc với dữ liệu kiểu tệp, ta phải sử dụng biến tệp.- Cú pháp:

VD: var tep1:text;

var <tên biến tệp> : text;

Page 10: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

3. Khai báo tệp

var tep vb: text; var tep1,tep2:text;

ĐúngSai

Khai báo nào đúng?

Page 11: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

1. Vai trò kiểu tệp

2. Phân loại tệp và thao tác với tệp.

3. Khai báo tệp

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

NỘI DUNG

Page 12: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

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

GHI DỮ LIỆU VÀO TỆP ĐỌC DỮ LIỆU TỪ TỆPGắ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

Hình: Sơ đồ tổng quát

Page 13: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

4. Thao tác với tệpa. Gắn tên tệp

- Trong lập trình, ta không thao tác trực tiếp với tệp dữ liệu trên đĩa mà thông qua biến tệp. Vì vậy ta cần phải gắn tên tệp vào biến tệp.

- Thủ tục:

* Trong đó tên tệp là biến xâu hoặc hằng xâu.-Vd1:

assign (tep1,‘DULIEU.DAT’);-Vd2:

assign (tep1, ‘C:\INP.DAT’);

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

Page 14: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

Mở tệp để ghi

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

Ví dụ: assign(tep1, ‘KQ.DAT’);rewrite(tep1);

4. Thao tác với tệpb. Mở tệp

Mở tệp để đọc

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

Ví dụ: assign(tep2, ‘KQ.DAT’); reset(tep2);

Trước khi mở tệp, biến tệp phải được gắn tên tệp bằng thủ tục assign.

Page 15: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

4. Thao tác với tệpc. Đọc/ ghi tệp văn bản

Trong pascal, để nhập dữ liệu từ bàn

phím và để in dữ liệu ra màn hình ta có thể dùng thủ tục

gì?

Page 16: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

4. Thao tác với tệpc. Đọc/ ghi tệp văn bản

Đọc tệp văn bản:

read(<biến tệp>,<danh sách biến>);readln(<biến tệp>,<danh sách biến>);

* Trong đó: danh sách biến là một hoặc nhiều tên biến đơn. Trong trường hợp nhiều biến thì các biến được phân cách bởi dấu phẩy.Ví dụ: + Để đọc dữ liệu từ tệp A: read(tepA,x,y,z);Hoặc readln(tepA,B,C,D);

Page 17: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

4. Thao tác với tệpc. Đọc/ ghi tệp văn bản

Ghi tệp văn bản:

write(<biến tệp>,<danh sách kết quả>);writeln(<biến tệp>,<danh sách kết quả>);

Trong đó: danh sách kết quả gồm một hoặc nhiều phần tử. Phần tử có thể là biến đơn, biểu thức hoặc hằng xâu.Ví dụ: + Để ghi dữ liệu vào tệp B:

Write(tepB, ‘A=’,a, ‘B=’,b);Hoặc Writeln(tepB,x,1, ‘X1=’,(a+b), ‘ ’);

Page 18: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

4. Thao tác với tệpc. Đọc/ ghi tệp văn bản

* 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ề giá trị TRUE khi con trỏ tệp đang chỉ tới cuối tệp.

- Hàm eoln (<biến tệp>): trả về giá trị TRUE khi con trỏ tệp đang chỉ tới cuối dòng.

Page 19: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

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

Tại sao ta phải đóng

tệp?Sau khi làm việc xong với tệp cần phải đóng tệp.

Chỉ có đóng tệp thì khi đó hệ thống mới thực sự hoàn tất ghi

dữ liệu ra tệp.

d. Đóng tệp

Page 20: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

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

Để đóng tệp ta sử dụng thủ tục:

Vd: Close (tepA);

Close (tepB);

d. Đóng tệp

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

Page 21: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

1. Cấu trúc khai báo tệp?

2. Các thao tác với tệp?

var <tên biến tệp> : text;

GHI DỮ LIỆU VÀO TỆP ĐỌC DỮ LIỆU TỪ TỆPGắ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 22: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

Củng Cố

Câu 1: 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 biến tệp> : text;

c. var <tên tệp> : string;

d. var <tên biến tệp> : string;

Page 23: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

Câu 2: Để thao tác với tệp:

a.Ta có thể gán tên tệp cho biến tệp hoặc trực tiếp sử dụng tên tệp cung được.

b.Ta nhất thiết phải gán tên tệp cho biến tệp.

c.Ta nên sử dụng trực tiếp tên tệp trong chương trình.

d.Ta nhất thiết phải sử dụng trực tiếp tên tệp trong chương trình.

Page 24: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

Câu 3: Để gán tệp KQ.txt cho biến tệp f ta dùng câu lệnh:

a. f := ‘KQ.txt’;

b. KQ.txt := f;

c. assign(‘KQ.txt’, f);

d. assign(f, ‘KQ.txt’);

Page 25: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

Câu 4: Trong Pascal, mở tệp để

đọc dữ liệu ta sử dụng thủ tục:

a. reset (<tên tệp>);

b. reset (<tên biến tệp>);

c. rewrite (<tên tệp>);

d. rewrite (<tên biến tệp>);

Page 26: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

26

Câu 5: Nối cấu trúc thích hợp

1. Đóng tệp.2. Mở tệp.3. Gán tên tệp.4. Đọc/ghi tệp văn bản.

a. assign(<biến tệp>,<tên tệp>);b. reset(<biến tệp>);c. read(<biến tệp>,<danh sách biến>);d. write(<biến tệp>,<danh sách kết quả>);e. close(<biến tệp>);

1 – e2 – b3 – a

4 – c, da

Page 27: Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp

BTVN:Trả lời câu hỏi trong sách bài tập và xem trước ví dụ 1, ví dụ 2 bài 16 trong SGK.