Bai1 khai niem lap trinh va ngon ngu lap trinh bac cao-tin11
Bai17 kieu du lieu tep va thao tac voi tep-tin 11
1. Bài 17
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.
Gi¸o ¸n ®iÖn tö tin häc líp 11
2. 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ố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.
3. 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ố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.
4. 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ố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.
5. 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ố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.
6. 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.
Ví dụ:
ASSIGN(tep1, ‘DULIEU.DAT’);
Biến tep1 được gắn với tệp có
tên DULIEU.DAT
ASSIGN(tep2, ‘D:TPBAITAP.INP’);
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ố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.
7. b. Mở tệp
Thủ tục mở tệp để ghi kết quả:
REWRITE (< biến tệp > );
Program vd1;
Uses crt;
Var
tep1,tep2: TEXT;
BEGIN
Clrscr;
ASSIGN(tep2, ‘D:TPBAITAP.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ố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.
8. c. Ghi dữ liệu ra tệp
Thủ tục ghi dữ liệu ra tệp
WRITE(< bi n t p > ế ệ , < Da nh s á ch kết q uả> );
WRITELN (< biến tệp > , < Da nh s á ch kết
q uả> );
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.
Program vd1;
Uses crt;
Var
tep2: TEXT;
a,b: integer;
BEGIN
Clrscr;
ASSIGN(tep2, ‘D:TPBAITAP.INP’);
REWRITE (tep2);
a:=3; b:=5;
WRITE (tep2,a,’ ‘,b);
Close(tep2);
Readln;
END.
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.
9. 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ố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.
10. d. Đọc dữ liệu từ tệp
Thủ tục mở tệp để đọc dữ liệu
RESET (< biến tệp > );
Thủ tục đọc dữ liệu từ tệp:
Program vd2;
Uses crt;
Var
tep2: TEXT;
x1,y1: integer;
BEGIN
Clrscr;
ASSIGN(tep2, ‘D:TPBAITAP.INP’);
RESET (tep2);
READLN (tep2,x1,y1);
WRITE (‘Hai so do la’ ,x1,y1);
Close(tep2);
Readln;
END.
READ(< biến tệp > , < Da nh s á ch biến> );
READLN (< biến tệp > , < Da nh s á ch biến> );
Danh sách biến là một hoặc
nhiều biến đơn.
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.
11. 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
Program vd1;
Uses crt;
Var
tep2: TEXT;
a,b: integer;
BEGIN
Clrscr;
ASSIGN(tep2, ‘D:TPBAITAP.INP’);
REWRITE (tep2);
a:=3; b:=5;
WRITE (tep2,a,b);
Close(tep2);
Readln;
END.
Program vd2;
Uses crt;
Var
tep2: TEXT;
x1,y1: integer;
BEGIN
Clrscr;
ASSIGN(tep2, ‘D:TPBAITAP.INP’);
RESET (tep2);
READLN(tep2, x1,y1);
WRITE (‘Hai so do la’ ,x1,y1);
Close(tep2);
Readln;
END.
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.
12. 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ố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.
13. 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>);
Đọ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);
Đóng tệp
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ả CLOSE(< của chương tªn biÕn trình tÖp>);
xin liên hệ với chúng
tôi.