Nhập môn về lập trình (C9) Slide 1 Chương 9 Sử dụng tập tin (file) Presenter Nhập môn về lập trình (C9) Slide 2 Learning outcomes L O 7 1 – Khai báo được kiểu tập tin L O 7 2 – Giải thích được các[.]
Trang 1Nhập môn về lập trình (C9) Slide 1
Chương 9
Sử dụng tập tin (file)
Presenter:
Trang 2Learning outcomes
L.O.7.1 – Khai báo được kiểu tập tin
L.O.7.2 – Giải thích được các kiểu mở và đóng tập tin
L.O.7.3 – Giải thích được nguyên tắc làm việc với tập tin
L.O.7.4 – Hiện thực được bằng C để lấy dữ liệu từ tập tin
hay để ghi dữ liệu vào tập tin
L.O.7.5 – Sử dụng được C để giải quyết bài toán trong thực
tế
L.O.7.6 – Sử dụng được macro
Trang 3Nhập môn về lập trình (C9) Slide 3
Tập tin (file)
Khái niệm chung
Tập tin (file) trên đĩa thường chia ra các loại chính:
• Văn bản: lưu thông tin theo dạng chuỗi ký tự theo mã quy định (ISO8859-1/ASCII, unicode) Có thể xem bằng các chương trình soạn thảo văn bản như notepad, wordpad, MSword,
• Nhị phân: thông tin lưu dưới dạng chuỗi byte nhị phân (binary) Dùng để lưu trữ chương trình mã máy, dữ liệu dạng nén, dữ liệu mã hoá,
• Cấu trúc/mẫu tin: thông tin lưu theo khối có cấu trúc giống nhau (mẫu tin) Thường dùng trong quản lý hồ sơ, dữ liệu có số lượng lớn
• Định dạng phần mềm chuyên dụng: thông tin được mã hoá do hãng phần mềm quy định Muốn đọc được thông tin, cần thực hiện giải mã (chìa khoá giải mã thường phải mua từ hãng phần mềm)
Trang 4Tập tin (file)
Dưới góc nhìn của ngôn ngữ C
Đối với C, tập tin được nhìn theo dạng dữ liệu thô:
• Chuỗi ký tự (dùng cho tập tin văn bản)
• Chuỗi byte (dùng cho tập tin nhị phân hoặc cấu trúc)
Ngoài ra, tập tin được lưu trữ trên cây thư mục chịu sự quản lý của Hệ điều hành nên mọi vấn đề có liên quan đến tập tin đều phải tuân theo thủ tục, qui trình qui định bởi Hệ điều hành
C hổ trợ các hàm thư viện giúp người lập trình có thể tiếp cận, “xin phép” Hệ điều hành để có thể làm việc với tập tin theo định dạng mong muốn
Người lập trình phải tự quản lý về mặt ý nghĩa của thông tin trên tập tin
Trang 5Nhập môn về lập trình (C9) Slide 5
Mở
Xử lý
Đóng
Tạo mới
(Chưa có : báo lỗi)
(Có rồi : nội dung bị mất)
Mở và tạo mới : tạo mối
quan hệ quản lý giữa tập tin trên đĩa (đặc trưng bằng tên tập tin) với biến trong bộ nhớ
(Phần thông tin quản lý tập tin) (Phần nội dung tập tin)
[Dời con trỏ tập tin], [đọc], [ghi]
Xử lý : thay đổi nội
dung tập tin hoặc thêm thông tin mới vào tập tin
Đóng : Cắt đứt quan hệ giữa
tập tin trên đĩa và chương trình
Tập tin
Thủ tục / Quy trình
Trang 6Tập tin (file)
Kiểu tập tin (FILE *)
Biến trong chương trình dùng để gắn kết với tập tin trên
đĩa ở bước mở/tạo file phải được định nghĩa với kiểu đặc biệt như cú pháp sau:
FILE *<tên biến>
Ví dụ: FILE *stream;
FILE *fileptr;
Kiểu FILE là kiểu cấu trúc do C định nghĩa sẳn Các
thành phần của nó được dùng để quản lý tập tin gắn kết với biến kiểu FILE * (các thông tin cần thiết để làm việc với tập tin như: tên, chiều dài byte, ngày/giờ tạo tập tin, ngày/giờ cập nhật gần nhất, )
Trang 7Nhập môn về lập trình (C9) Slide 7
Tập tin (file)
Mở / tạo tập tin
Hàm thư viện mở/tạo tập tin:
FILE * fopen( const char *filename, const char *mode );
trong đó:
• filename là tên tập tin trên đĩa
Ví dụ: “C:\MSSV_Vc\”ThapHN.cpp”, “Hamdq.h”
• mode qui định chế độ mở/tạo tập tin
“r” : mở để đọc
“w” : mở để ghi
“a” : mở để thêm vào
“r+”, mở để vừa đọc vừa ghi, tập tin phải có rồi
“w+” : tạo mới (hoặc xoá nội dung cũ) để vừa đọc vừa ghi
“a+” : mở/tạo mới để vừa đọc vừa thêm vào
“t” : thêm vào cuối để chọn tập tin văn bản
“b” :thêm vào cuối để chọn tập tin nhị phân