* Mở tệp để đọc nội dung từ tệp, ta dùng thủ tục sau: Reset; Trong đó, biến tệp là biến đã được gắn *Mở tệp để đọc nội dung từ với một tên tệp trong thủ tục Assign... Thủ tục: Reset;.[r]
(1)CHƯƠNG V: TỆP VÀ THAO TÁC VỚI TỆP BÀI 14: KIỂU DỮ LIỆU TỆP BÀI 15: THAO TÁC VỚI TỆP Người soạn: Nguyễn Thị Huê Ngày soạn: 02/11/2008 GV hướng dẫn: Nguyễn Văn Trường I MỤC ĐÍCH, YÊU CẦU - Học sinh hình thành khái niệm, ý thức vai trò, cách phân loại liệu kiểu tệp - Hiểu chất và số thao tác làm vệc trên liệu kiểu tệp II.CHUẨN BỊ Giáo viên chuẩn bị hai bảng phụ các thao tác với tệp III NỘI DUNG Ổn định lớp Sĩ số: Vắng: Có phép: Không phép: Bài Hoạt động giáo viên Hoạt động học sinh Ở các chương trước, chúng ta đã xét các Nghe giảng kiểu liệu mà thông tin Input và Output nó đề lưu nhớ Do đó, thoát chương trình, các liệu này bị Muốn xem lại kết quả, ta phải nhập Input và chạy lại chương trình Có cách nào để ta nhập Input và chạy chương trình lần, mà có thể xem thông tin Output nào? Lop11.com TG (2) Trong Pascal, có kiểu liệu cho phép thực điều đó: kiểu tệp Để hiểu rõ hơn, chúng ta cùng tìm hiểu bài mới: Chương V: Tệp và thao tác với tệp Bài 14: Kiểu liệu tệp Vai trò kiểu tệp - Ở lớp 10, các em đã biết khái niệm tệp Tệp là tập hợp các thông tin ghi trên nhớ ngoài, tạo thành đơn vị lưu trữ - Để hình dung tệp, em hãy đọc SGK - Trả lời: Đặc điểm kiểu và cho biết đặc điểm nó? tệp: + Dữ liệu kiểu tệp lưu trữ lâu dài nhớ ngoài, không bị tắt nguồn điện + Lượng lưu trữ trên tệp có thể lớn và phụ thuộc vào dung lượng đĩa - Nhờ đặc điểm trên, liệu - Vai trò liệu kiểu tệp: kiểu tệp thường dùng lưu trữ các Dùng lưu trữ các liệu liệu bài toán nhớ ngoài để bài toán nhớ ngoài để xử xử lí nhiều lần Đặc biệt là các bài toán lí nhiều lần Đặc biệt là các bài lớn toán lớn Phân loại tệp và thao tác với tệp - Em hãy đọc SGK, nêu các cách phân - Trả lời: loại tệp, với cách thì có loại Có hai cách phân loại tệp + Xét theo cách tổ chức tệp nào? Lop11.com (3) liệu: Tệp văn Tệp có cấu trúc + Xét theo cách thức truy cập: Tệp truy cập Tệp truy cập trực tiếp - Lưu ý: Khác với liệu kiểu mảng hay kiểu xâu, liệu kiểu tệp không có giới hạn và không phải xác định trước Dữ liệu kiểu tệp có vai trò quan trọng - Nghe giảng vậy, để biết cách sử dụng nó nào, ta chuyển sang bài mới: Bài 15: Thao tác với tệp - Trong chương trình, ta xét kiểu tệp văn Các thao tác trên tệp bao gồm: Khai báo biến tệp, gắn tên tệp, mở tệp, đọc/ghi văn và đóng tệp Em có thể hình dung qua sơ đồ sau: (bảng phụ 1) Ta cùng vào thao tác cụ thể Khai báo - Tệp văn là kiểu liệu có cấu - Ghi bài trúc đã Pascal định nghĩa sẵn - Dạng khai báo sau: - Dạng khai báo: Var <biến tệp>: text; Var <biến tệp>: text; Var, text là các từ khóa; biến tệp Var, text là các từ khóa; biến người dùng đặt tệp người dùng đặt 2.Thao tác với tệp a Gắn tên tệp Lop11.com (4) - Trong lập trình, ta không thao tác trực - Tên tệp đặt theo quy tắc tiếp với tệp liệu trên đĩa, mà thông HĐH MSDOS qua biến tệp Tức là, ngôn ngữ lập trình sử dụng biến tệp đại diện tệp Gắn tên tệp chính là gắn tệp với đại diện nó - Em hãy nêu thủ tục gắn tên tệp? - Trả lời: Thủ tục gắn tên tệp: Tên tệp Pascal đặt theo quy Assign (<biến tệp>,<tên tệp>); tắc HĐH MSDOS, đặt - Tên tệp Pascal đặt cặp nháy đơn ‘’ theo quy tắc HĐH - VD: Assign(f, ‘input.txt’); MSDOS, đặt cặp nháy đơn ‘’ - Tên tệp có thể là đường dẫn chứa ổ Tên tệp có thể là đường dẫn đĩa, danh sách các thư mục lên tiếp chứa ổ đĩa cách dấu \, cuối cùng là tên tệp - VD:Assign(f,‘C:\document\input.txt’); b Mở tệp - Tệp có thể dùng để chứa kết - Nghe giảng liệu vào Việc mở tệp có kiểu mở để ghi liệu vào tệp mở để đọc liệu từ tệp * Mở để ghi liệu vào tệp, ta dùng thủ * Mở để ghi liệu vào tệp: tục: Rewrite (<biến tệp>); Thủ tục: Rewrite (<biến tệp>); Trong đó, biến tệp là biến đã gắn - Nếu trên thư mục đã có tệp với tên tệp thủ tục Assign cùng tên thì nội dung cũ bị - Khi thực thủ tục này, trên xóa; ngược lại, chương trình Lop11.com (5) thư mục đã có tệp cùng tên thì nội dung tạo tệp với nội cũ bị xóa; ngược lại, chương trình dung rỗng tạo tệp với nội dung rỗng * Mở tệp để đọc nội dung từ tệp, ta dùng thủ tục sau: Reset(<biến tệp>); Trong đó, biến tệp là biến đã gắn *Mở tệp để đọc nội dung từ với tên tệp thủ tục Assign tệp: - Khi mở tệp, vị trí trỏ đầu tệp, Thủ tục: Reset(<biến tệp>); sẵn sàng để đọc Biến tệp là biến đã gắn với tên tệp thủ tục Assign - Khi mở tệp, vị trí trỏ đầu tệp, sẵn sàng để đọc c Đọc/ghi tệp văn c Đọc/ghi tệp văn * Đọc tệp văn * Đọc tệp văn - Việc đọc tệp văn danh sách các - Thủ tục: biến có ý nghĩa nhập liệu Read(<biến tệp>,<danh sách từ bàn phím cho các biến đó các biến>); - Thủ tục: Read(<biến tệp>,<danh sách Hoặc: các biến>); Readln(<biến tệp>,<danh sách Hoặc: Readln(<biến tệp>,<danh sách các biến>); các biến>); Danh sách các biến có thể là - Câu lệnh thực hiện: đọc các giá trị nhiều biến đơn, đặt vị trí trỏ gán sang biến tương ứng cách dấy phẩy cùng kiểu - Lưu ý: biến đây không phải là biến tệp; mà là biến trung gian, dùng cho việc tính toán Lop11.com (6) Danh sách các biến có thể là nhiều biến đơn, đặt cách dấy phẩy - Đọc tệp tương ứng với thủ tục mở tệp để đọc - VD: Reset(f); Read (f, a, b); * Ghi tệp văn * Ghi tệp văn - Việc ghi tệp văn có ý nghĩa giống - Thủ tục: ghi màn hình Write(<biến tệp>,<danh sách - Thủ tục: Write(<biến tệp>,<kết quả>); kết quả>); Hoặc: Writeln(<biến tệp>,<danh sách Hoặc: Writeln(<biến tệp>,<danh sách kết quả>); - Danh sách kết có thể là các biến, kết quả>); hằng, biểu thức Danh sách kết có thể là các - Ghi tệp tương ứng với thủ tục mở tệp biến, hằng, biểu thức để ghi - VD: Rewrite(f); Write(f, ‘ket qua:’, a); * Một số hàm chuẩn thường dùng: * Một số hàm chuẩn thường - Khi đọc tệp văn bản, cần phải xem tệp dùng: đó có còn phần tử không Tức là, - Eof(<biến tệp>): trả giá trị True trỏ tệp trỏ tệp đã đến cuối tệp chưa - Hàm Eof(<biến tệp>) trả giá trị tới cuối tệp True trỏ tệp tới cuối - Eoln(<biến tệp>): trả giá tệp trị True trỏ tệp Hàm Eoln(<biến tệp>) trả giá trị tới cuối dòng True trỏ tệp tới cuối dòng Lop11.com (7) - VD: Đọc tệp f có nhiều dòng văn bản: Reset (f); While not eof(f) readln(f, s); Vòng lặp thực trỏ tệp trỏ tới cuối tệp Mỗi lần thực vòng lặp, đọc dòng tệp biến S, sau đó chuyển trỏ xuống dòng d Đóng tệp d Đóng tệp - Sau làm việc xong với tệp cần - Sau làm việc xong với tệp phải đóng tệp Khi đóng tệp, hệ thống cần phải đóng tệp thực hoàn tất việc ghi liệu - Thủ tục: Close(<biến tệp>); tệp, không thì không có liệu nào ghi vào tệp ghi phần - Thủ tục: Close(<biến tệp>); - Em hãy lấy VD? - VD: Close(f); - Như vậy, chúng ta đã tìm hiểu các thao tác làm việc với tệp Ta có thể hệ thống lại sau: (bảng phụ 2) IV CỦNG CỐ - Nhắc lại vai trò và phân loại liệu kiểu tệp, các thao tác với tệp - BTVN: Đọc trước bài 16 và tìm hiểu các ví dụ tệp Lop11.com (8) V NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Bảng phụ 1: Lop11.com (9) Bảng phụ 2: Var <biến tệp>: text; Assign(<biến tệp>,<tên tệp>); Ghi Đọc Rewrite (<biến tệp>); Reset (<biến tệp>); Write(<biến tệp>,<danh dách kết quả>); Read (<biến tệp>,<danh sách biến>); Close (<biến tệp>) Lop11.com (10)