CHƯƠNG V: KIỂU DỮ LIỆU TỆPKIỂU DỮ LIỆU TỆP – THAO TÁC VỚI TỆP 1.. Vai trò của 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, USB và không bị mất khi tắt ngu
Trang 1CHƯƠNG V: KIỂU DỮ LIỆU TỆP
KIỂU DỮ LIỆU TỆP – THAO TÁC VỚI TỆP
1 Vai trò của kiểu tệp
2 Phân loại tệp và thao tác với
tệp
4 Thao tác với tệp
Trang 21 Vai trò của 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, USB) và không
bị mất khi tắt nguồn điện.
Lượng dữ liệu trên tệp có thể rất lớn và chỉ phụ thuộc vào dung lượng đĩa
Trang 32 Phân loại tệp và thao tác với
tệp
- Tệp văn bản
Gồm các kí tự được phân chia thành một hoặc
nhiều dòng
- 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
- Tệp truy cập tuần tự: cho phép truy cập đến một dữ liệu nào đó trong tệp chỉ bằng cách 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ó
- Tệp truy cập trực tiếp: cho phép tham chiếu đến dữ liệu cần truy cập bằng cách xác định vi trí của dữ liệu đó
Trang 42 Phân loại tệp và thao tác với
tệp
Các thao tác với tệp
- Khai báo biến tệp
- Mở tệp
- Đọc/ghi tệp dữ liệu
- Đóng tệp
Chú ý: Khác với mảng số lượng phần tử của kiểu 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 và đọc dữ liệu từ tệp
Trang 53 Khai Báo
Khai báo biến tệp văn bản có dạng:
var < tên biến tệp >: text;
Ví dụ:
var tep1, tep2 : text;
Trang 64 Thao tác với tệp
a Gắn tên tệp
b Mở tệp
c Đọc/ ghi tệp văn bản
d Đóng tệp
Trang 7a Gắn tên tệp
Thủ tục:
assign (<biến tệp>, <tên têp>);
Trong đó tên tệp là biến xâu hoặc hằng xâu.
Ví dụ:
assign (tep1,’DULIEU.DAT’);
- Biến tep1 được gắn với tệp có tên DULIEU.DAT
assign (tep2,’D:TPBAITAP.INP’);
- Biến tep2 được gắn với tệp có tên BAITAP.INPtrong thư mục TP ở ổ đĩa D
Trang 8b Mở tệp
Thủ tục mở tệp để ghi DL có dạng:
rewrite (<biến tệp>);
Ví dụ:
rewrite (tep3,’C:\KQ.DAT’);
rewrite (tep3);
Khi thực hiện thủ tục rewrite(tep3) nếu trên thư mục
gốc của đĩa C chưa có tệp KQ.DAT thì tệp sẽ
được tạo với nội dung rỗng Nếu đã có thì nội
dung cũ sẽ bị xóa để chuẩn bị ghi dữ liệu mới
Trang 9c Đọc/ ghi tệp văn bản
Thủ tục mở tệp để đọc DL: reset(<biến tệp>);
Câu lệnh dùng thủ tục đọc có dạng:
read (<biến tệp>,<danh sach bien>);
readln (<biến tệp>,<danh sach bien>);
danh sach bien là một hoặc nhiều tên biến đơn VD
Var tep2: text; x1,y1:integer;
Begin
assign(tep2,’D:\TPBAITAP.INP’);
reset (tep2);
readln (tep2, x1,y1);
Trang 10Thủ tục ghi dữ liệu ra tệp:
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
VD
Var tep2: text; a,b:integer;
Begin
assign(tep2,’D:\TPBAITAP.INP’);
rewrite (tep2);
a:=3; b:=5;
Trang 11{ giá trị hai biến a=3, b=5 được ghi trong tệp
BAITAP>INP}
Một số hàm chuẩn được dùng trong khi đọc/ghi tệp văn bản:
• Hàm eof(<biến tệp>) trả về giá trị true nếu con trỏ
tệp đang chỉ tới cuối tệp
• Hàm eoln(<biến tệp>) trả về giá trị False nếu con trỏ
tệp đang chỉ tới cuối dòng
Trang 12d Đóng tệp
Câu lệnh dùng thủ tục đóng tệp có dạng:
close (<biến tệp>);
VD
close(<tep1>);
close(<tep2>);
Sau khi đóng một tệp vẫn có thể được mở lại Khi mở
lạ tệp nếu vẫn dùng biến tệp cũ thì không cần phải dùng thủ tục assign gắn lại tên tệp
Trang 13Các thao tác với tệp được mô tả như sau:
Gắn tên tệp
Đóng tệp
Trang 14Củng cố
Câu 1 Đặc điểm nào sau đây không đúng với dữ liệu
kiểu tệp?
A Lưu trữ được lượng thông tin lớn
B Được lưu trữ lâu dài và không bị mất khi tắt máy
C Được lưu trữ ở bộ nhớ ngoài
D Đươc lưu trữ ở bộ nhớ trong
Câu 2 Trong cá khai báo tệp sau đây khai báo nào sai?
A type tep: File of char;
B var tep: text
C Var X: File of integer;
Trang 15Câu 3 Mở một tệp mới để ghi nội dung thì ta chọn
lệnh
BTVN
- Ôn tập lại bài học ngày hôm nay
- Chuẩn bị trước bài 16: ”VÍ dụ làm việc với tệp”
- Làm các câu hỏi và bài tập trong SGK trang 89.
Trang 16
Chúc các em học tập tốt !
The end