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: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
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ª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
§ã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»ngx©uhoÆcbiÓuthø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
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;
Close(tep2);
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ệ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
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>);
Đọ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);