Bài 15. Thao tác với tệp
Chia sẻ bởi Nguyễn Thị Mỹ Phúc |
Ngày 10/05/2019 |
63
Chia sẻ tài liệu: Bài 15. Thao tác với tệp thuộc Tin học 11
Nội dung tài liệu:
1
1/24/2010
1
BÀI 15:
THAO TÁC VỚI TỆP
2
NỘI DUNG:
Khai báo tệp.
2. Thao tác với tệp.
3
1/24/2010
1. Đặt vấn đề
2. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
Trong chương trình Pascal
khi chúng ta muốn dùng
một biến để chứa dữ liệu,
thì việc đầu tiên chúng ta sẽ làm là gì,
để có thể sử dụng được biến đó???
Khai báo biến
4
1/24/2010
1. Đặt vấn đề
2. Khai báo tệp
Var:;
III. Củng cố
I. Khai báo tệp
III. Củng cố
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
Khai báo biến
như thế nào?
Tại sao phải
sử dụng biến tệp?
Dữ liệu không bị mất khi tắt điện và dữ liệu được lưu trữ trên tệp có dung lượng lớn.
5
1/24/2010
1. Đặt vấn đề
2. Khai báo tệp
III. Củng cố
I. Khai báo tệp
III. Củng cố
III. Củng cố
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
var : text;
Vậy khai báo
biến tệp
như thế nào?
6
1/24/2010
1. Đặt vấn đề
2. Khai báo tệp
III. Củng cố
I. Khai báo tệp
III. Củng cố
III. Củng cố
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
var tep1, tep2 : text;
Đúng
Sai
var tep vb : text;
var tep1,tep2 : text.
7
1/24/2010
1. Đặt vấn đề
2. Khai báo tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
Phân biệt tên tệp với biến tệp
Mỗi tệp có một cái tên, tên tệp là
biến xâu hay hằng xâu.
- Ví dụ 1: assign(tep1,‘DULIEU.DAT’);
Ví dụ 2: tentep=’DL.INP’;
assign(tep1, tentep);
- Ví dụ 3: assign(tep1, ‘C:\DIEM.TXT’);
Mặt khác biến tệp là biến sử dụng để
tham chiếu tới các phần tử của tệp.
Hằng xâu
Biến xâu
8
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Như đã biết ở trên, 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. Bởi vậy ta phải tạo một tham chiếu giữa tên tệp và biến tệp.
Sơ đồ tổng quát
9
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
assign(, );
- Trong đó tên tệp: Là hằng xâu ký tự hoặc giá trị
của một biểu thức kiểu xâu ký tự.
- Độ dài lớn nhất của tên tệp là 79 ký tự.
10
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Mở tệp để đọc
Mở tệp để ghi
2 kiểu
rewrite();
reset();
assign(tep1, ‘KQ.DAT’);
rewrite(tep1);
assign(tep2, ‘KQ.DAT’);
reset(tep2);
11
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Nếu tep2 chưa được ghi mà thực hiện thao tác mở tệp để đọc thì sao, để ghi thì sao?
+ Với trường hợp mở tệp để ghi: Tự tạo ra tệp để ghi
+ Với trường hợp mở tệp để đọc: Báo lỗi.
12
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Khi mở tệp để ghi mà không tồn tại tên tệp trong thủ tục mở tệp để ghi thì có gì xảy ra?
Tệp sẽ được tạo với nội dung rỗng
13
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Trong Pascal, lệnh nào dùng để đọc và ghi dữ liệu?
Lệnh đọc là read
hoặc readln
Lệnh ghi là write
hoặc writeln
14
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
read (,);
readln (,);
write (,);
writeln (,);
Đọc tệp văn bản:
Ghi tệp văn bản:
15
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Các hàm và thủ tục thông dụng:
Hàm eof();
cho giá trị TRUE nếu con trỏ tệp
đang chỉ tới cuối tệp.
Hàm eoln ()
trả về giá trị TRUE nếu con trỏ tệp
đang chỉ tới cuối dòng.
16
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Tại sao 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.
17
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Cú pháp:
Close ()
18
1/24/2010
II. Thao tác với tệp
I. Khai báo tệp
II. Thao tác với tệp
I. Khai báo tệp
II. Thao tác với tệp
II. Thao tác với tệp
III. Củng cố
Cấu trúc khai báo tệp?
Các thao tác với tệp?
19
1/24/2010
II. Thao tác với tệp
I. Khai báo tệp
II. Thao tác với tệp
I. Khai báo tệp
II. Thao tác với tệp
II. Thao tác với tệp
III. Củng cố
20
Câu lệnh dùng mở tệp để đọc?
open(,);
reset (,);
open();
reset(biến tệp);
21
Nối cấu trúc thích hợp
Đóng tệp.
Mở tệp.
Gán tên tệp.
Đọc/ghi tệp văn bản.
assign(,);
reset();
read(,);
write(,);
close();
1 – e
2 – b
3 – a
4 – c, d
22
Bài tập về nhà
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.
23
THE END
1/24/2010
1
BÀI 15:
THAO TÁC VỚI TỆP
2
NỘI DUNG:
Khai báo tệp.
2. Thao tác với tệp.
3
1/24/2010
1. Đặt vấn đề
2. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
Trong chương trình Pascal
khi chúng ta muốn dùng
một biến để chứa dữ liệu,
thì việc đầu tiên chúng ta sẽ làm là gì,
để có thể sử dụng được biến đó???
Khai báo biến
4
1/24/2010
1. Đặt vấn đề
2. Khai báo tệp
Var
III. Củng cố
I. Khai báo tệp
III. Củng cố
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
Khai báo biến
như thế nào?
Tại sao phải
sử dụng biến tệp?
Dữ liệu không bị mất khi tắt điện và dữ liệu được lưu trữ trên tệp có dung lượng lớn.
5
1/24/2010
1. Đặt vấn đề
2. Khai báo tệp
III. Củng cố
I. Khai báo tệp
III. Củng cố
III. Củng cố
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
var
Vậy khai báo
biến tệp
như thế nào?
6
1/24/2010
1. Đặt vấn đề
2. Khai báo tệp
III. Củng cố
I. Khai báo tệp
III. Củng cố
III. Củng cố
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
var tep1, tep2 : text;
Đúng
Sai
var tep vb : text;
var tep1,tep2 : text.
7
1/24/2010
1. Đặt vấn đề
2. Khai báo tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
Phân biệt tên tệp với biến tệp
Mỗi tệp có một cái tên, tên tệp là
biến xâu hay hằng xâu.
- Ví dụ 1: assign(tep1,‘DULIEU.DAT’);
Ví dụ 2: tentep=’DL.INP’;
assign(tep1, tentep);
- Ví dụ 3: assign(tep1, ‘C:\DIEM.TXT’);
Mặt khác biến tệp là biến sử dụng để
tham chiếu tới các phần tử của tệp.
Hằng xâu
Biến xâu
8
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Như đã biết ở trên, 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. Bởi vậy ta phải tạo một tham chiếu giữa tên tệp và biến tệp.
Sơ đồ tổng quát
9
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
assign(
- Trong đó tên tệp: Là hằng xâu ký tự hoặc giá trị
của một biểu thức kiểu xâu ký tự.
- Độ dài lớn nhất của tên tệp là 79 ký tự.
10
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Mở tệp để đọc
Mở tệp để ghi
2 kiểu
rewrite(
reset(
assign(tep1, ‘KQ.DAT’);
rewrite(tep1);
assign(tep2, ‘KQ.DAT’);
reset(tep2);
11
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Nếu tep2 chưa được ghi mà thực hiện thao tác mở tệp để đọc thì sao, để ghi thì sao?
+ Với trường hợp mở tệp để ghi: Tự tạo ra tệp để ghi
+ Với trường hợp mở tệp để đọc: Báo lỗi.
12
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Khi mở tệp để ghi mà không tồn tại tên tệp trong thủ tục mở tệp để ghi thì có gì xảy ra?
Tệp sẽ được tạo với nội dung rỗng
13
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Trong Pascal, lệnh nào dùng để đọc và ghi dữ liệu?
Lệnh đọc là read
hoặc readln
Lệnh ghi là write
hoặc writeln
14
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
read (
readln (
write (
writeln (
Đọc tệp văn bản:
Ghi tệp văn bản:
15
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Các hàm và thủ tục thông dụng:
Hàm eof(
cho giá trị TRUE nếu con trỏ tệp
đang chỉ tới cuối tệp.
Hàm eoln (
trả về giá trị TRUE nếu con trỏ tệp
đang chỉ tới cuối dòng.
16
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Tại sao 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.
17
1/24/2010
1. Gán tên tệp
2. Mở tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
I. Khai báo tệp
III. Củng cố
II. Thao tác với tệp
III. Củng cố
II. Thao tác với tệp
3. Đọc/ghi tệp văn bản
4. Đóng tệp
Cú pháp:
Close (
18
1/24/2010
II. Thao tác với tệp
I. Khai báo tệp
II. Thao tác với tệp
I. Khai báo tệp
II. Thao tác với tệp
II. Thao tác với tệp
III. Củng cố
Cấu trúc khai báo tệp?
Các thao tác với tệp?
19
1/24/2010
II. Thao tác với tệp
I. Khai báo tệp
II. Thao tác với tệp
I. Khai báo tệp
II. Thao tác với tệp
II. Thao tác với tệp
III. Củng cố
20
Câu lệnh dùng mở tệp để đọc?
open(
reset (
open(
reset(biến tệp);
21
Nối cấu trúc thích hợp
Đóng tệp.
Mở tệp.
Gán tên tệp.
Đọc/ghi tệp văn bản.
assign(
reset(
read(
write(
close(
1 – e
2 – b
3 – a
4 – c, d
22
Bài tập về nhà
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.
23
THE END
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Thị Mỹ Phúc
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)