Upload
bich-tuyen
View
206
Download
1
Embed Size (px)
Citation preview
Thầy Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốcNếu quý thầy cô/ cơ quan nào là tác giả của chương trình xin liên hệ với chúng tôi.
Bài 17
Gi̧ o ¸n ®iÖn tö tin häc líp 11
Thầy Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốcNếu quý thầy cô/ cơ quan nào là tác giả của chương trình xin liên hệ với chúng tôi.
1. 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.
Thầy Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốcNếu quý thầy cô/ cơ quan nào là tác giả của chương trình xin liên hệ với chúng tôi.
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ố 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.
Thầy Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốcNếu quý thầy cô/ cơ quan nào là tác giả của chương trình xin liên hệ với chúng tôi.
2. Khai báo tệp văn bản
Var <Tên biến tệp> : TEXT;
Ví d :ụ
tep1,tep2 : Text;
Program vd1;Uses crt;Var tep1,tep2: TEXT;
Thầy Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốcNếu quý thầy cô/ cơ quan nào là tác giả của chương trình xin liên hệ với chúng tôi.
3. Thao tác với tệp
Gán tên tệp
Mở tệp để ghi Mở tệp để đọc
Ghi dữ liệu ra tệp Đọc dữ liệu từ tệp
Đóng tệp
Thầy Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốcNếu quý thầy cô/ cơ quan nào là tác giả của chương trình xin liên hệ với chúng tôi.
a. 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.
Thầy Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốcNếu quý thầy cô/ cơ quan nào là tác giả của chương trình xin liên hệ với chúng tôi.
b. M t pở ệ
REWRITE (< b i 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.
Thầy Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốcNếu quý thầy cô/ cơ quan nào là tác giả của chương trình xin liên hệ với chúng tôi.
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.
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(< b i n t p > , < Da nh s á ch k t q u > )ế ệ ế ả ;
WRITELN (< bi n t p > , < Da nh s á ch k t ế ệ ếq u > );ả
Thầy Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốcNếu quý thầy cô/ cơ quan nào là tác giả của chương trình xin liên hệ với chúng tôi.
Giá trị hai biến a=3, b=5 được ghi ở trong tệp BAITAP.INP.
Thầy Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốcNếu quý thầy cô/ cơ quan nào là tác giả của chương trình xin liên hệ với chúng tôi.
RESET (< bi n t 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);
READ(< b i n t p > , < Da nh s á ch bi n> )ế ệ ế ;
Danh sách biến là một hoặc nhiều biến đơn.
READLN (< bi n t p > , < Da nh s á ch bi n> );ế ệ ế
Thầy Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốcNếu quý thầy cô/ cơ quan nào là tác giả của chương trình xin liên hệ với chúng tôi.
Close(tep2);
Program 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;END.
Close(tep2);
BEGIN Clrscr;
ASSIGN(tep2, ‘D:\TP\BAITAP.INP’);
READLN(tep2, x1,y1);WRITE (‘Hai so do la’ ,x1,y1);
Readln;END.
Program vd2;Uses crt;Var tep2: TEXT; x1,y1: integer;
RESET (tep2);
e. Thủ tục đóng tệp CLO SE(< TÊN BIẾN TỆP>)
GHI DỮ LIỆU RA TỆP ĐỌC DỮ LIỆU TỪ TỆP
Thầy Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốcNếu quý thầy cô/ cơ quan nào là tác giả của chương trình xin liên hệ với chúng tôi.
f. 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.
Thầy Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốcNếu quý thầy cô/ cơ quan nào là tác giả của chương trình xin liên hệ với chúng tôi.
Hã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);