- Dữ liệu kiểu tệp được lưu trữ lâu dài ở bộ nhớ ngoài và không bị mất khi tắt nguồn điện.. Phân loại và thao tác với tệp Là tệp mà các phần tử có cùng một kiểu dữ liệu.. - Có hai cách
Trang 1chương trình có lưu được dữ liệu và kết quả cho lần chạy
tiếp theo hay không?
chương trình có lưu được dữ liệu và kết quả cho lần chạy
tiếp theo hay không?
Trang 2Bµi 14 KiÓu d÷ liÖu tÖp
Bµi 15 Thao t¸c víi tÖp Bµi 16 VÝ dô lµm viÖc víi tÖp
Trang 3§15 THAO TÁC VỚI TỆP
Trang 4N ỘI DUNG
1 Vai trò của kiểu tệp
2 Phân loại và thao tác với tệp
3 Khai báo
4 Thao tác với tệp
Trang 5- Dữ liệu kiểu tệp được lưu trữ lâu dài ở bộ nhớ ngoài và không bị mất khi tắt nguồn điện
- Lượng thông tin lưu trữ trên tệp có thể rất lớn và chỉ
phụ thuộc vào dung lượng đĩa
Trang 6§14 KIỂU DỮ LIỆU TỆP & §15 CÁC THAO TÁC VỚI TỆP
2 Phân loại và thao tác với tệp
Là tệp mà các phần tử có cùng một kiểu dữ liệu Số lượng phần tử không xác định trước
Là tệp dữ liệu gồm các kí
tự theo mã ASCII, được
phân thành một hoặc
nhiều dòng
- Có hai cách phân loại tệp:
Tệp có cấu trúc:
Tệp văn bản:
Truy cập trực tiếp
- 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
Trang 7VAR <Tên biến tệp> : TEXT;
Ví dụ:
VAR
F1, F2 : Text;
Program vd1;
Uses crt;
Var
F1,F2: TEXT;
Trang 8§14 KIỂU DỮ LIỆU TỆP & §15 CÁC THAO TÁC VỚI TỆP
Gắn tên tệp
Ghi dữ liệu vào tệp Đọc dữ liệu từ tệp
Đóng tệp
Ghi dữ liệu vào tệp Đọc dữ liệu từ tệp
Trang 9a Gắn tên tệp
ASSIGN(<biến tệp>,<tên tệp>);
Ví dụ:
Biến F1 được gắn với tệp có tên
DULIEU.PAS
Biến F2 được gắn với tệp
mục TP ở ổ đĩa D.
Trang 10§14 KIỂU DỮ LIỆU TỆP & §15 CÁC THAO TÁC VỚI TỆP
b Mở tệp
4 Các thao tác với tệp
REWRITE (<biến tệp>);
* Thủ tục mở tệp để ghi:
VD:
REWRITE (F1 );
* Thủ tục ghi dữ liệu vào tệp:
WRITE(<biến tệp>, <Danh sách kết quả>);
WRITELN (<biến tệp>, <Danh sách kết quả>);
Program vd1;
Var F1: TEXT;
x, y: integer;
ASSIGN(F1, ‘D:\TP\DULIEU.PAS’);
REWRITE (F1);
WRITE (F1 , x , y , x+y ) ;
x:=12; y:=8;
Close(F1);
Readln;
phần tử Phần tử có thể là biến, hằng
Trong Pascal, lệnh nào dùng để ghi dữ
liệu?
Trong Pascal, lệnh nào dùng để ghi dữ
liệu?
Lệnh ghi là write hoặc writeln
Lệnh ghi là write hoặc writeln
Trang 11RESET (<biến tệp>);
* Thủ tục mở tệp để đọc dữ liệu:
Danh sách biến là một hoặc nhiều
biến.
Program vd2;
Var F1: TEXT;
x, y: integer;
ASSIGN(F1, ‘D:\TP\BAITAP.PAS’);
RESET (F1);
Close(F1);
Readln;
END.
WRITE (‘Hai so do la’ , x , y);
VD: RESET (F1);
VD: READ(F1, x , y);
* Thủ tục đọc dữ liệu từ tệp:
READ(<biến tệp>, <Danh sách biến>);
READLN (<biến tệp>, <Danh sách biến>);
b Mở tệp
Trong Pascal, lệnh nào dùng để đọc
dữ liệu?
Trong Pascal, lệnh nào dùng để đọc
dữ liệu?
Lệnh đọc là read hoặc readln
Lệnh đọc là read hoặc readln
Trang 12RESET (F1);
x = 12
12 8
y= 8
Trang 13* Một số hàm chuẩn thường dùng trong xử lí tệp văn bản
EOF(<biến tệp>);
Cho giá trị đúng nếu con trỏ đang chỉ tới cuối tệp
EOLN(<biến tệp>);
Cho giá trị đúng nếu con trỏ đang chỉ tới cuối dòng
b Mở tệp
Trang 14Program vd1;
Var F1: TEXT;
x, y: integer;
BEGIN
ASSIGN(F1, ‘D:\TP\DULIEU.PAS’);
REWRITE (F1);
WRITE (F1, x , y , x+y );
x:=3; y:=5;
Readln;
Close(F1);
BEGIN
ASSIGN(F1, ‘D:\TP\BAITAP.INP’);
READ(F1, x , y );
WRITE (‘Hai so do la’ , x , y);
Readln;
Program vd2;
Var
F1: TEXT;
x, y: integer;
RESET (F1);
CLOSE (< tên biến tệp>);
§14 KIỂU DỮ LIỆU TỆP & §15 CÁC THAO TÁC VỚI TỆP
b Đóng tệp
4 Các thao tác với tệp
Trang 15Var <biến tệp>:Text;
ASSIGN( <biến tệp>, <tên tệp>);
Reset(<biến tệp>);
Rewrite(<biến tệp>);
Read(<biến tệp>, <danh sách biến>);
Write(<biến tệp>, <danh sách kết quả>);
CLOSE(< tên biến tệp>);
eof(<biến tệp>);
Khai báo biến tệp Thủ tục gán tên tệp cho tên biến tệp Thủ tục mở tên để đọc dữ liệu
Thủ tục mở tệp để ghi dữ liệu Thủ tục đọc dữ liệu từ tệp Thủ tục ghi dữ liệu vào tệp Thủ tục đóng tệp
Hàm cho biết con trỏ có ở cuối tệp không
Trang 16Tìm hiểu trước ví dụ 1 & ví dụ 2 bài tiếp theo
BTVN:
Viết chương trình ghi vào tệp văn bản có tên là
vanban.txt dữ liệu sau đây:
Lop 11a3 Nam hoc 2009-2010
Sau đó đọc dữ liệu vanban.txt ghi ra màn hình.