Tệp là gì ?Tệp File hay tập tin là tập hợp các thông tin lưu trên đĩa từ, băng từ, đĩa CD …tạo thành một đơn vị lưu trữ do Hệ điều hành quản lý... Tệp File hay tập tin là tập hợp các thô
Trang 1Chương trình với các kiểu
dữ liệu đã học có đặc
điểm gì?
Các nhược điểm này có
thể khắc phục được
không ?
1 Nhập dữ liệu từ bàn phím làm mất
thời gian và dễ gây nhầm lẫn (nếu lượng dữ liệu cần nhập nhiều)
2 Kết quả thực hiện chương trình
không được lưu giữ lại
Trang 2BÀI 14
KIỂU DỮ LIỆU TỆP
Trang 3Tệp là gì ?
Tệp (File) hay tập tin là tập hợp các
thông tin lưu trên đĩa từ, băng từ, đĩa
CD …tạo thành một đơn vị lưu trữ do
Hệ điều hành quản lý
Trang 4Sử dụng dữ liệu kiểu tệp
mang lại những lợi ích gì ?
Tệp (File) hay tập tin là tập hợp các thông tin lưu trên đĩa từ, băng từ, đĩa
CD …tạo thành một đơn vị lưu trữ do
Hệ điều hành quản lý
Trang 5Bài 14: kiểu dữ liệu tệp
1 Vai trò của kiểu tệp
1 Dữ liệu kiểu tệp được lưu trữ lâu dài trên bộ nhớ
ngoài nên nó không bị mất khi tắt nguồn điện
2 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
Tệp (File) hay tập tin là tập hợp các thông tin lưu trên đĩa từ, băng từ, đĩa CD …tạo thành một đơn vị lưu trữ do Hệ điều hành quản lý
Sử dụng dữ liệu
kiểu tệp mang lại
những lợi ích gì ?
Trang 6Bài 14: kiểu dữ liệu tệp
2 Phân loại tệp và thao tác với tệp.
1
2
Theo cách tổ chức dữ liệu
- Tệp văn bản: gồm các kí tự theo mã ASCII được tổ
chức và quản lý theo từng dòng.(vd: sách, tài liệu, )
- 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.(vd: hình ảnh, âm thanh,…)
Theo cách thức truy cập
- Tệp truy cập tuần tự
- Tệp truy cập trực tiếp
Trang 7Bài 14: kiểu dữ liệu tệp
Để có thể thao tác với tệp chúng ta cần phải biết:
- Khai báo biến tệp
- Đọc/ghi dữ liệu
- Mở tệp
- Đóng tệp
Trang 8BÀI 15
Thao tác với tệp
Trang 91 Khai báo
Bài 15.Thao tác với tệp
Cú pháp chung của khai
báo biến ?
Var <tên biến tệp>: text;
Ví dụ: var tep1, tep2 : text;
Var <tên biến>:< kiểu dữ liệu> ;
Trang 10Bài 15.Thao tác với tệp
2 Thao tác với tệp
Nhóm 1:
Tìm hiểu cách gắn tên
tệp, tại sao phải gắn tên
tệp ?
Nhóm 2:
Tìm hiểu cách mở tệp
Nhóm 3:
Tìm hiểu cách Đọc/ghi
tệp văn bản
Nhóm 4:
Tìm hiểu cách đóng tệp, tại sao phải đóng tệp ?
Trang 11Bài 15.Thao tác với tệp
2 Thao tác với tệp
a Gắn tên tệp
Assign (<tên biến tệp>, <tên tệp>);
Ví dụ: assign (tep1, ‘hoso.txt’)
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 Do vậy, để thao tác với tệp thì trước hết phải gắn tên tệp với biến tệp
Biến tệp có thể là biến xâu hoặc hằng xâu
Trang 12b Mở tệp
rewrite (<tên biến tệp>);
Ví dụ: assign (tep1, ‘hoso.txt’);
rewrite (tep1);
Mở tệp để đọc:
Reset (<tên biến tệp>);
Ví dụ: assign (tep1, ‘hoso.txt’);
reset (tep1);
Mở tệp để ghi:
Bài 15.Thao tác với tệp
2 Thao tác với tệp
Trang 13Chú ý:
Trước khi mở tệp, biến tệp phải được gắn tên tệp
bởi thủ tục assign
Khi mở tệp để ghi, nếu tệp chưa có thì sẽ tự động
được tạo với nội dung rỗng, nếu đã có thì nội dung cũ
sẽ bị xóa
Khi mở tệp để đọc, nếu tệp chưa tồn tại thì chương trình sẽ báo lỗi
Trang 142 Thao tác với tệp
c Đọc/ghi tệp văn bản
Đọc:
read (<biến tệp>, <danh sách biến>);
readln (<biến tệp>, <danh sách biến>);
Ghi:
write(<biến tệp>, <danh sách kết quả>); writeln (<biến tệp>, <danh sách kết quả>);
Ví dụ: read (f,a);
readln (f,a,b);
Ví dụ: writeln (f, a, b);
write (f, ‘hoc sinh’);
Chú ý Danh sách biến là một hoặc nhiều biến đơn, nếu là
nhiều biến thì ngăn cách nhau bởi dấu phẩy
Danh sách kết quả là một hoặc nhiều phần tử (có
thể là biến đơn, biểu thức, hằng xâu), nếu là nhiều
Trang 152 Thao tác với tệp
d Đóng tệp
close (<biến tệp>);
Ví dụ: close (tep1);
Chú ý: Khi đã đóng tệp vẫn có thể mở lại, nếu vẫn dùng biến tệp cũ thì không cần phải gắn lại tên tệp
Trang 16 Một số hàm chuẩn thường 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ị true nếu con trỏ
tệp đang chỉ tới cuối dòng
Chú ý : phân biệt 2 hàm này:
eof (end of file) : cuối tệp eoln (end of line) : cuối dòng
Trang 17ASSIGN(<biến tệp>,<tên tệp>);
CLOSE(<biến tệp>);
read(<biến tệp>,<danh sách biến>);
reset(<biến tệp>);
rewrite(<biến tệp>);
write(<biến tệp>,<danh sách kết quả>);
ASSIGN(<biến tệp>,<tên tệp>);
rewrite(<biến tệp>); reset(<biến tệp>);
write(<biến tệp>,<danh sách kết quả>); read(<biến tệp>,<danh sách biến>);
CLOSE(<biến tệp>);
Trang 18Các chương trình sau đã đúng chưa? Nếu sai hãy sửa lại cho đúng.
Bài tập củng cố:
1 Var f:text;
begin
assign (f, ‘kq.txt’);
writeln(f, ‘lop11a7’);
close(f);
end;
2 Var f:text; a: char ; begin
rewrite (f); a:= 10;
writeln(f, a);
close(f);
end;
3 Var f:text;
begin
assign (f, ‘kq.txt’);
writeln(f, ‘lop11a7’);
close(f);
4 Var f:text;
begin
assign (f, ‘kq.txt’);
rewrite (f);
read(f, a);
1
2
3
4
Rewrite(f);
assign (f, ‘kq.txt’);
a: char ;
reset (f);
Trang 19CHÚC CÁC EM
HỌC TỐT THE END