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ệp th ờng dùng: Tệp định kiểu Tệp văn bản Là tệp mà các phần tử có cùng một kiểu.. S
Trang 1Bµi 14 + Bµi 15
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:
Tệp định kiểu Tệp văn bản
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ªnbiÕntÖp>:
TEXT;
VÝ dô:
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
Ghi d÷ liÖu ra
§ãng tÖp
Trang 6a Gán tên tệp
ASSIGN(<biến tệp>,<tên tệp>);
Tênưtệp: ưLàưbiếnưxâuưhoặcưhằngưxâu.
ASSIGN(tep1, ‘DULIEU.DAT’);
ASSIGN(tep2, ‘D:\TP\BAITAP.INP’);
Ví dụ:
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
REWRITE (<biến tệ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
Danh s¸ch kÕt qu¶ gåm
mét hay 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¶>);
WRITELN (<biÕn tÖp>, <Danh s¸ch kÕt
qu¶>);
Trang 9Gi¸ trÞ hai biÕn a=3, b=5 ® îc ghi
ë trong tÖp BAITAP.INP.
Trang 10RESET (<biến tệp>);
Thủ tục mở tệp để đọc
dữ liệu
Thủ tục đọc dữ liệu từ
tệp:
ư Danhư sáchư biếnư làư mộtư
hoặcưnhiềuưbiếnưđơn.
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);
READ(<biến tệp>, <Danh sách
biến>);
READLN (<biến tệp>, <Danh sách
biến>);
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;
BEGIN
Clrscr;
ASSIGN(tep2, ‘D:\TP\BAITAP.INP’);
READLN(tep2,ưx1,y1);
WRITE (‘Haiưsoưdoưla’ư,x1,y1);
Program vd2;
Uses crt;
Var tep2: TEXT;
x1,y1: integer;
RESET (tep2);
e Thủ tục đóng tệpCLOSE(< tên biến tệp>)
Ghi dữ liệu ra
tệp Đọc dữ liệu từ tệp
Trang 12f 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.
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>);
Đóng 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