Vai trò kiểu tệpDữ liệu kiểu tệp được lưu trữ lâu dài ở bộ nhớ ngoài đĩa từ, CD, .... 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... Có hai loại t
Trang 1Bài 17
Trang 21 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 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 3Có hai loại tệp thường dùng:
Là tệp mà các phần tử có cùng
một kiểu Số lượng phần tử
không xác định trước.
Gồm các kí tự được phân chia thành một hoặc nhiều dòng.
Dưới đây ta chỉ xét các khai báo và làm việc với tệp văn bản
Trang 42 Khai báo tệp văn bản
Var <Tên biến tệp> : TEXT;
tep1,tep2 : Text;
Program vd1;
Uses crt;
Var
tep1,tep2: TEXT;
Trang 53 Thao tác với tệp
Gán tên tệp
Đóng tệp
Trang 6a Gán tên tệp
ASSIGN (<BIẾN TỆP>,<TÊN TỆP>);
ASSIGN(tep1, ‘DULIEU.DAT’);
ASSIGN(tep2, ‘D:\TP\BAITAP.INP’);
Biến tep1 được gắn với tệp có
tên DULIEU.DAT
Biến tep2 được gắn với tệp có
tên BAITAP.INP trong thư mục
TP ở ổ đĩa D.
Trang 7b M t p ở tệp ệp
REWRITE ( <bi n t p>) ến tệp>) ệp>) ;
Thủ tục mở tệp để ghi kết quả:
Program vd1;
Uses crt;
Var tep1,tep2: TEXT;
BEGIN Clrscr;
ASSIGN(tep2, ‘D:\TP\BAITAP.INP’);
REWRITE ( tep2) ;
Nếu như trên ổ D:\TP chưa có
tệp BAITAP.INP, thì tệp sẽ
được tạo rỗng Nếu đã có, thì
nội dung cũ bị xoá để chuẩn bị
ghi dữ liệu mới.
Trang 8Thủ tục ghi dữ liệu ra tệp
nhiều phần tử Phần tử có thể là
biến, hằng xâu hoặc biểu thức.
c Ghi dữ liệu ra tệp
Program vd1;
Uses crt;
Var tep2: TEXT;
a,b: integer;
ASSIGN(tep2, ‘D:\TP\BAITAP.INP’);
REWRITE ( tep2) ;
WRITE (tep2,a,’ ‘,b);
a:=3; b:=5;
BEGIN
Clrscr;
Close(tep2);
Readln;
END.
WRITE ( <bi n t p>, <Danh sách k t qu >) ến tệp>) ệp>) ến tệp>) ả>) ;
WRITELN (<bi n t p>, <Danh sách k t qu >); ến tệp>) ệp>) ến tệp>) ả>)
Trang 9Giá trị hai biến a=3, b=5 được ghi ở trong tệp BAITAP.INP.
Trang 10RESET (<bi n t p>); ến tệp>) ệp>)
Thủ tục mở tệp để đọc dữ liệu
Thủ tục đọc dữ liệu từ tệp :
d Đọc dữ liệu từ tệp
Program vd2;
Uses crt;
Var tep2: TEXT;
x1,y1: integer;
ASSIGN(tep2, ‘D:\TP\BAITAP.INP’);
RESET ( tep2) ;
READLN (tep2,x1,y1);
BEGIN
Clrscr;
Close(tep2);
Readln;
END.
WRITE ( ‘Hai so do la’ ,x1,y1) Hai so do la ,x1,y1) ’ ,x1,y1) ;
READ ( <bi n t p>, <Danh sách bi n>) ến tệp>) ệp>) ến tệp>) ;
Danh sách biến là một hoặc
nhiều biến đơn.
READLN (<bi n t p>, <Danh sách bi n>); ến tệp>) ệp>) ến tệp>)
Trang 11Program vd1;
Uses crt;
Var
tep2: TEXT;
a,b: integer;
BEGIN
Clrscr;
ASSIGN(tep2, ‘D:\TP\BAITAP.INP’);
REWRITE (tep2);
WRITE (tep2,a,b);
a:=3; b:=5;
Readln;
Close(tep2);
BEGIN
Clrscr;
ASSIGN(tep2, ‘D:\TP\BAITAP.INP’);
READLN( tep2, x1,y1) ; WRITE ( ‘Hai so do la’ ,x1,y1) Hai so do la ,x1,y1) ’ ,x1,y1) ; Readln;
Program vd2;
Uses crt;
Var tep2: TEXT;
x1,y1: integer;
RESET ( tep2) ;
e Thủ tục đóng tệp CLOSE (< TÊN BIẾN TỆP>)
Trang 12f Một số hàm chuẩn thường dùng trong xử lí tệp văn bản
Cho giá trị đúng nếu con trỏ đang chỉ tới cuối tệp.
EOFLN (<biến tệp>);
Cho giá trị đúng nếu con trỏ đang chỉ tới cuối dòng.
Trang 13Hãy nhớ!
Khai báo tệp văn bản:
Var < Tên biến tệp>: Text;
Gán tên tệp:
ASSIGN(<tên biến tệp>);
Mở tệp:
- Để đọc: RESET(<Tên biến tệp>);
- Để ghi: REWRITE(< Tên biến tệp>);
Đọc/ghi tệp
Đọc: READ(<Tên biến tệp>, biến nhận);
Ghi: REWRITE(< Tên biến tệp>,biến đưa ra);