13
Thầy Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốc Nế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

Bai17 kieu du lieu tep va thao tac voi tep-tin 11

Embed Size (px)

Citation preview

Page 1: Bai17  kieu du lieu tep va thao tac voi tep-tin 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.

Bài 17

Gi̧ o ¸n ®iÖn tö tin häc líp 11

Page 2: Bai17  kieu du lieu tep va thao tac voi tep-tin 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.

Page 3: Bai17  kieu du lieu tep va thao tac voi tep-tin 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.

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.

Page 4: Bai17  kieu du lieu tep va thao tac voi tep-tin 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.

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;

Page 5: Bai17  kieu du lieu tep va thao tac voi tep-tin 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.

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

Page 6: Bai17  kieu du lieu tep va thao tac voi tep-tin 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.

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.

Page 7: Bai17  kieu du lieu tep va thao tac voi tep-tin 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.

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.

Page 8: Bai17  kieu du lieu tep va thao tac voi tep-tin 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.

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 > );ả

Page 9: Bai17  kieu du lieu tep va thao tac voi tep-tin 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.

Giá trị hai biến a=3, b=5 được ghi ở trong tệp BAITAP.INP.

Page 10: Bai17  kieu du lieu tep va thao tac voi tep-tin 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.

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> );ế ệ ế

Page 11: Bai17  kieu du lieu tep va thao tac voi tep-tin 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.

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

Page 12: Bai17  kieu du lieu tep va thao tac voi tep-tin 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.

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.

Page 13: Bai17  kieu du lieu tep va thao tac voi tep-tin 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.

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);