Khi nhập song dữ liệu ta in kết quả ra màn hinh nh ng khi thoát khỏi ch ơng trình và vào lại ta lại phải nhập lại số liệu.. Vậy làm cách nào để khi mở ra ta vẫn có đ ợc dữ liệu cũ?... Có
Trang 1Chúng ta đã học kiểu mảng, kiểu bản ghi Khi nhập song dữ liệu
ta in kết quả ra màn hinh nh ng khi thoát khỏi ch ơng trình và vào lại ta lại phải nhập lại số liệu
Dữ liệu này đ ơc l u trữ ở đâu mà nó lại mất đi khi mất điện?
Vậy làm cách nào để khi mở ra ta vẫn có đ ợc dữ liệu cũ?
Trang 2Bµi 14 + 15
Trang 31 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 4Có 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ự theo mã ASCII đ ợc phân chia thành một hoặc nhiều dòng.
Trang 5Hai 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.
• Khai báo biến tệp
• Mở tệp
• Đọc /ghi dữ liệu
• Đóng tệp
Để có thể thao tác với kiểu tệp, ng ời lập trình cần tìm hiểu cách thức mà ngôn ngữ lập trình cung cấp để:
D ới đay ta sẽ tìm hiểu các thao tác với tệp trong Ngôn ngữ lập trìnhPascal
Trang 62 Khai b¸o tÖp v¨n b¶n
Var <Tªn biÕn tÖp> : TEXT;
VÝ dô:
Var tep1,tep2 : Text;
Program vd1;
Uses crt;
Var tep1,tep2: TEXT;
Trang 7a 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.
3 Thao tác với tệp
Trang 8b Mở tệp
REWRITE ( <biến tệp>) ;
Thủ tục mở tệp để ghi kết quả:
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 9Thñ 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
WRITE( <biÕn tÖp>, <Danh s¸ch kÕt qu¶>) ;
WRITELN (<biÕn tÖp>, <Danh s¸ch kÕt qu¶>);
Trang 10Gi¸ trÞ hai biÕn a=3, b=5 ® îc ghi ë trong tÖp BAITAP.INP.
Trang 11RESET (<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
READ( <biến tệp>, <Danh sách biến>) ;
READLN (<biến tệp>, <Danh sách biến>);
Trang 12e Thủ tục đóng tệp CLOSE(< tên biến tệp>)
Ghi dữ liệu ra tệp Đọc dữ liệu từ tệp
Trang 13f 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.
Trang 143 Thao tác với tệp
Gán tên tệp: assign(<biến tệp>,<tên tệp>);
Mở tệp để ghi:rewrite(<biến tệp>); Mở tệp để đọc:reset(<biến tệp>);
write(<biến tệp>,<danh sách kq>); read(<biến tệp>,<danh sách biến>);
close(<biến tệp>);
Trang 15Hã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 CLOSE(< 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);
Trang 16Các em về học bài cũ và đọc tr ớc ví dụ 1, ví dụ 2 bài 16 Tiết sau sẽ nghiên cứ các ví dụ này.
nguyên và sau đó đọc các số nguyên đó và in ra màn hình Bài tập