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... và không bị mất khi tắt nguồn điện.. L ợng thông tin l u trữ t
Trang 1Bµi 14 -
15
Gi¸o ¸n ®iÖn tö tin häc líp 11
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 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 42 Phân loại tệp và thao tác với
tệp:
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.
(VD: Hình ảnh,
âm thanh)
Gồm các kí tự đ ợc phân chia thành một hoặc nhiều dòng.
a Phân loại:
- Dựa vào cách tổ chức dữ liệu:
Trang 52 Phân loại tệp và thao tác với
tệp:
+ Tệp truy cập tuần tự
+ Tệp truy cập ngẫu nhiêu
a Phân loại:
- Cách thức truy cập:
b Thao tác với tệp: có 2 thao tác
+ Đọc tệp: lấy thông tin từ tệp mà không làm thay
đổi nội dung của tệp
+ Ghi tệp: Làm thay đổi nội dung của tệp
Trang 63 Khai b¸o tÖp v¨n
b¶n
Var <Tªn biÕn tÖp> :
TEXT;
Var tep1,tep2 : Text;
Program vd1;
Uses crt;
Var
tep1,tep2: TEXT;
Trang 74 Thao t¸c víi tÖp
G¾n tªn tÖp
Ghi d÷ liÖu ra
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 8a Ghi dữ liệu vào 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.
Ví dụ: Để gán biến tệp tep1 cho tệp có tên
là: DULIEU.DAT thì có thể sử
dụng một trong các cách sau:
+ TH1 : Tệp DULIEU.DAT nằm
cùng th mục với tệp Tubor.exe
ASSIGN(tep1, ‘DULIEU.DAT’);
ASSIGN(tep1, ‘D:\Vi du\DULIEU.DAT’);
Gắn tờn tợ̀p
Mở tợ̀p đờ̉ ghi
Ghi dữ liợ̀u ra tợ̀p
Đóng tợ̀p
*Gắn tên tệp:
+ TH2 : Tệp DULIEU.DAT nằm khác
th mục với tệp Tubor.exe
của ch ơng trình Pascal hoặc FreePascal thì khi viết
<tên tệp> phải viết đ ờng dẫn đầy đủ đến vị trí của tệp
Trang 9REWRITE (<biến tệp>);
*Thủ tục mở tệp để ghi kết quả:
Program vd1;
Uses crt;
Var
tep1: TEXT;
BEGIN
Clrscr;
ASSIGN(tep1, ‘D:\Vi du\DULIEU.DAT’);
REWRITE (tep1);
Nếu nh trên ổ D:\Vi du ch a có tệp DULIEU.DAT, 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.
Gắn tờn tợ̀p
Mở tợ̀p đờ̉ ghi
Ghi dữ liợ̀u ra tợ̀p
Đóng tợ̀p
Ví dụ: (ghi dữ liệu vào tệp
DULIEU.DAT )
Trang 10*Thñ 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.
WRITE (tep1,a,’ ‘,b);
Program vd1;
Uses crt;
Var tep1: TEXT;
a,b: integer;
ASSIGN(tep1, ‘D:\Vi du\DULIEU.DAT’);
REWRITE (tep1);
a:=3; b:=5;
BEGIN
Clrscr;
WRITE(<biÕn tÖp>, <Danh s¸ch kÕt
qu¶>);
WRITELN (<biÕn tÖp>, <Danh s¸ch kÕt
qu¶>);
Gắn tên tệp
Mở tệp để ghi
Ghi dữ liệu ra tệp
Đóng tệp
VÝ dô: Ghi gi¸ trÞ cña biÕn a, b vµo tÖp
DULIEU.DAT
Trang 11Program vd1;
Uses crt;
Var
tep1: TEXT;
a,b: integer;
BEGIN
Clrscr;
ASSIGN(tep1, ‘D:\Vi du\DULIEU.DAT’);
REWRITE (tep1);
WRITE (tep1,a,’ ‘,b);
a:=3; b:=5;
Readln;
END.
* Thñ tôc ®ãng tÖp CLOSE (< tªn biÕn tÖp>)
Gắn tên tệp
Mở tệp để ghi
Ghi dữ liệu ra tệp
Đóng tệp
VÝ dô: Ghi gi¸ trÞ cña biÕn a, b vµo tÖp
DULIEU.DAT
Trang 12*Gắn tên tệp, đóng tệp : t ơng tự nh thao
tác ghi tệp
b Đọc thông tin từ
tệp
Gắn tờn tợ̀p
Mở tợ̀p đờ̉ đọc
Đọc dữ liợ̀u từ tợ̀p
Đóng tợ̀p
*Mở tệp để
BEGIN
Clrscr;
ASSIGN(tep2, ‘D:\BAITAP.INP’);
Program vd2;
Uses crt;
Var
tep2: TEXT;
RESET (tep2);
Ví dụ: Đọc thông tin trong tệp BAITAP.INP
nằm ở ổ đĩa D.
Trang 13b Đọc thông tin từ tệp
Gắn tờn tợ̀p
Mở tợ̀p đờ̉ đọc
Đọc tợ̀p
Đóng tợ̀p
*Đọc tệp :
BEGIN
Clrscr;
ASSIGN(tep2, ‘D:\BAITAP.INP’);
Program vd2;
Uses crt;
Var
tep2: TEXT;
RESET (tep2);
Ví dụ: Đọc thông tin trong tệp BAITAP.INP
nằm ở ổ đĩa D (biết trong tệp có 2 giá
trị nguyên)
READ(<biến tệp>, <Danh sách
biến>);
READLN (<biến tệp>, <Danh sách biến>);
READLN (tep2,x1,y1);
x1,y1: integer
WRITE (‘Hai so do la’ ,x1,y1);
Close(tep2);
Readln;
END.
Trang 14Program bai15_vd1;
Uses crt;
Var
tep1: TEXT;
a,b: integer;
BEGIN
Clrscr;
ASSIGN(tep1, ‘D:\Lop_11A2\VD1.txt’);
REWRITE (tep1);
WRITE (tep1,a,b);
a:=3; b:=5;
Readln;
END.
Close(tep2);
BEGIN
Clrscr;
ASSIGN(tep2, ‘D:\Lop_11A2\VD1.txt’);
READLN(tep2, x1,y1);
WRITE (‘Hai so do la’ ,x1,y1);
Readln;
END.
Program bai15_vd2;
Uses crt;
Var tep2: TEXT;
x1,y1: integer;
RESET (tep2);
Ghi d÷ liÖu ra
tÖp
§äc d÷ liÖu tõ tÖp
Trang 15c Một số hàm chuẩn th ờng dùng trong xử lí tệp
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 16Hã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);