![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Bài giảng Tin học đại cương (Phần 3) - Chương 7: Tệp tin
Số trang: 25
Loại file: pdf
Dung lượng: 468.29 KB
Lượt xem: 26
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Tin học đại cương (Phần 3) - Chương 7: Tệp tin cung cấp cho học viên những kiến thức về khái niệm cơ bản, các thao tác với tệp tin, chế độ mở tệp, bản chất của tệp, truy nhập tệp tin văn bản, truy nhập tệp tin nhị phân,... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Nội dung trích xuất từ tài liệu:
Bài giảng Tin học đại cương (Phần 3) - Chương 7: Tệp tin Phần III Chương 7 Tệp tin GV: Nguyễn Thị Thùy Liên Email: lien.nguyenthithuy@phenikaa-uni.edu.vn 1 Nội dung Khái niệm cơ bản Các thao tác với tệp tin Truy nhập tệp tin văn bản Truy nhập tệp tin nhị hân 2 Nội dung Khái niệm cơ bản Các thao tác với tệp tin Truy nhập tệp tin văn bản Truy nhập tệp tin nhị hân 3 1. Khái niệm cơ bản •Tệp tin là tập hợp các byte liên tục được lưu trữ và được gán tên gọi. •Biến tập tin: là một biến thuộc kiểu dữ liệu tập tin dung để đại diện cho một tập tin. •Con trỏ tập tin: con trỏ chỉ đến vị trí của tập tin mà tại đó việc đọc/ghi thông tin sẽ xảy ra oSau khi đọc/ghi xong dữ liệu, con trỏ sẽ chuyển dịch thêm một phần tử về phía cuối tập tin •Ký tự kết thúc tệp tin (EOF – End Of File): ký tự cuối cùng báo kết thú tệp tin 4 Phân loại •Khi xử lý tệp tin chương trình có thể xem xét chuỗi byte với cách nhìn khác nhau, có những ứng xử khác nhau với dữ liệu •Tệp văn bản: o Dữ liệu của tập tin là chuỗi ký tự được tổ chức thành dòng o Mỗi dòng được kết thúc bằng ký tự xuống dòng “\n” o Ký tự EOF: mã ASCII là 26 • Tệp nhị phân: o Dữ liệu tổ chức thành dãy byte liên tục o Ký tự EOF: byte có giá trị -1 5 Nội dung Khái niệm cơ bản Các thao tác với tệp tin Truy nhập tệp tin văn bản Truy nhập tệp tin nhị hân 6 Các thao tác với tệp tin • Trong C truy nhập tệp phải thông qua con trỏ tệp • Các hàm thao tác với tệp tin được khai báo trong tệp tiêu đề stdio.h • Một biến con trỏ tệp (file pointer) được khai báo như sau: FILE *tenConTroTep; • Ví dụ FILE *f1, *f2; 7 Mở tệp tin • Muốn làm việc với tệp trước hết cần phải mở tệp • Để mở tệp sử dụng hàm fopen() tenConTroTep = fopen(tenTep, cheDoMo); • Trong đó: o tenTep là xâu ký tự chứa đường dẫn tới tệp tin o cheDoMo là xâu ký tự chỉ định chế độ mở tệp khi thao tác với tệp o fopen() trả về giá trị NULL nếu có lỗi mở tệp • Ví dụ: FILE *fp; fp = fopen (“C:\TDC\test.dat”, “rb”); 8 Chế độ mở tệp Chế độ Mục đích sử dụng Mở tệp đã có để đọc, không được ghi. Nếu tệp không tồn tại, hàm “r” fopen() sẽ trả lại trạng thái lỗi. Mở tệp đã có để ghi, không được đọc. Nếu tệp đã tồn tại thì xóa “w” và tạo tệp mới Mở tệp để ghi thêm dữ liệu vào cuối tệp. Nếu tệp chưa tồn tại, nó “a” sẽ được tạo mới “r+” Mở tệp để vừa đọc vừa ghi. Nếu tệp chưa tồn tại thì sẽ báo lỗi Mở tệp để vừa đọc vừa ghi. Nếu tệp đã tồn tại, nội dung của nó sẽ “w+” bị xóa hết. Mở tệp để ghi thêm dữ liệu vào cuối tệp. Tệp mới sẽ được tạo nếu “a+” nó chưa tồn tại. 9 Bản chất của tệp • Khi chỉ định chế độ mở tệp, ta cũng có thể chỉ ra bản chất của tệp Ký hiệu Bản chất của tệp “b” Tệp nhị phân “t” Tệp văn bản • Khi mở tệp, nếu không chỉ rõ bản chất dữ liệu của tệp thì C sẽ ngầm hiểu đó là tệp văn bản 10 Ví dụ • Mở một tệp văn bản để đọc fp = fopen(“diem.txt”, “rt”); • Mở một tệp văn bản để ghi đè fp = fopen(“diem.txt”, “wt”); • Mở một tên văn bản để vừa đọc vừa ghi thêm fp = fopen(“C:\TDC\diem.txt”, “a+t”); • Mở một tệp nhị phân để vừa đọc vừa ghi fp = fopen(“D:\VD\diem.dat”, “r+b”); 11 Đóng tệp tin • Đóng tệp là đảm bảo những thay đổi dữ liệu được lưu lại trên tệp. • Để đóng tệp ta dùng hàm fclose() có cú pháp khai báo fclose(tenConTroTep); • Kết quả trả về: 0 nếu đóng tệp thành công Ngược lại nếu có lỗi 12 Các thao tác khác • int feof(FILE *fp) o Kiểm tra vị trí con trỏ đã ở cuối tệp chưa o Trả về = 0 nếu sai, ≠ 0 nếu đúng • void rewind(FILE *fp) o Di chuyển con trỏ vị trí về đầu tệp 13 Nội dung Khái niệm cơ bản Các thao tác với tệp tin Truy nhập tệp tin văn bản Truy nhập tệp tin nhị hân 14 3. Truy nhập tệp văn bản • int fscanf(FILE *fp, char[] xauDinhDang, danh_sach_dia_chi) o Đọc dữ liệu từ tệp o Sử dụng tương tự scanf() o Trả về số lượng giá trị đọc được theo xâu định dạng nếu hàm thực hiện thành công, ngược lại trả về giá trị nhỏ hơn o Hạn chế: Cần biết định dạng dữ liệu trong tệp • int fflush(FILE *fp) o Xóa bộ đệm đọc tệp o Nên thực hiện trước khi dùng hàm fscanf() 15 3. Truy nhập tệp văn bản (tiếp) • char* fgets(char[] str, int n, FILE* fp) o Đọc tối đa n-1 ký tự, hoặc khi gặp dấu xuống dòng trong tệp fp và gán cho str o Tự động thêm ký tự “\n” o Trả về con trỏ tới xâu str nếu thành công, ngược lại trả về NULL • int fgetc(FILE *fp) o Đọc 1 ký tự trên tệp o Trả về mã ASCII của ký tự nếu thành công, ngược lại trả về EOF 16 3. Truy nhập tệp văn bản (tiếp) •int fprintf(FILE *fp, char[] xauDinhDang, danh_sach_tham_so) o Ghi dữ liệu lên tệp o Tương tự printf() o Trả về số byte đã ghi nếu thành công, ngược lại trả về số < 0 • int fputs(char ...
Nội dung trích xuất từ tài liệu:
Bài giảng Tin học đại cương (Phần 3) - Chương 7: Tệp tin Phần III Chương 7 Tệp tin GV: Nguyễn Thị Thùy Liên Email: lien.nguyenthithuy@phenikaa-uni.edu.vn 1 Nội dung Khái niệm cơ bản Các thao tác với tệp tin Truy nhập tệp tin văn bản Truy nhập tệp tin nhị hân 2 Nội dung Khái niệm cơ bản Các thao tác với tệp tin Truy nhập tệp tin văn bản Truy nhập tệp tin nhị hân 3 1. Khái niệm cơ bản •Tệp tin là tập hợp các byte liên tục được lưu trữ và được gán tên gọi. •Biến tập tin: là một biến thuộc kiểu dữ liệu tập tin dung để đại diện cho một tập tin. •Con trỏ tập tin: con trỏ chỉ đến vị trí của tập tin mà tại đó việc đọc/ghi thông tin sẽ xảy ra oSau khi đọc/ghi xong dữ liệu, con trỏ sẽ chuyển dịch thêm một phần tử về phía cuối tập tin •Ký tự kết thúc tệp tin (EOF – End Of File): ký tự cuối cùng báo kết thú tệp tin 4 Phân loại •Khi xử lý tệp tin chương trình có thể xem xét chuỗi byte với cách nhìn khác nhau, có những ứng xử khác nhau với dữ liệu •Tệp văn bản: o Dữ liệu của tập tin là chuỗi ký tự được tổ chức thành dòng o Mỗi dòng được kết thúc bằng ký tự xuống dòng “\n” o Ký tự EOF: mã ASCII là 26 • Tệp nhị phân: o Dữ liệu tổ chức thành dãy byte liên tục o Ký tự EOF: byte có giá trị -1 5 Nội dung Khái niệm cơ bản Các thao tác với tệp tin Truy nhập tệp tin văn bản Truy nhập tệp tin nhị hân 6 Các thao tác với tệp tin • Trong C truy nhập tệp phải thông qua con trỏ tệp • Các hàm thao tác với tệp tin được khai báo trong tệp tiêu đề stdio.h • Một biến con trỏ tệp (file pointer) được khai báo như sau: FILE *tenConTroTep; • Ví dụ FILE *f1, *f2; 7 Mở tệp tin • Muốn làm việc với tệp trước hết cần phải mở tệp • Để mở tệp sử dụng hàm fopen() tenConTroTep = fopen(tenTep, cheDoMo); • Trong đó: o tenTep là xâu ký tự chứa đường dẫn tới tệp tin o cheDoMo là xâu ký tự chỉ định chế độ mở tệp khi thao tác với tệp o fopen() trả về giá trị NULL nếu có lỗi mở tệp • Ví dụ: FILE *fp; fp = fopen (“C:\TDC\test.dat”, “rb”); 8 Chế độ mở tệp Chế độ Mục đích sử dụng Mở tệp đã có để đọc, không được ghi. Nếu tệp không tồn tại, hàm “r” fopen() sẽ trả lại trạng thái lỗi. Mở tệp đã có để ghi, không được đọc. Nếu tệp đã tồn tại thì xóa “w” và tạo tệp mới Mở tệp để ghi thêm dữ liệu vào cuối tệp. Nếu tệp chưa tồn tại, nó “a” sẽ được tạo mới “r+” Mở tệp để vừa đọc vừa ghi. Nếu tệp chưa tồn tại thì sẽ báo lỗi Mở tệp để vừa đọc vừa ghi. Nếu tệp đã tồn tại, nội dung của nó sẽ “w+” bị xóa hết. Mở tệp để ghi thêm dữ liệu vào cuối tệp. Tệp mới sẽ được tạo nếu “a+” nó chưa tồn tại. 9 Bản chất của tệp • Khi chỉ định chế độ mở tệp, ta cũng có thể chỉ ra bản chất của tệp Ký hiệu Bản chất của tệp “b” Tệp nhị phân “t” Tệp văn bản • Khi mở tệp, nếu không chỉ rõ bản chất dữ liệu của tệp thì C sẽ ngầm hiểu đó là tệp văn bản 10 Ví dụ • Mở một tệp văn bản để đọc fp = fopen(“diem.txt”, “rt”); • Mở một tệp văn bản để ghi đè fp = fopen(“diem.txt”, “wt”); • Mở một tên văn bản để vừa đọc vừa ghi thêm fp = fopen(“C:\TDC\diem.txt”, “a+t”); • Mở một tệp nhị phân để vừa đọc vừa ghi fp = fopen(“D:\VD\diem.dat”, “r+b”); 11 Đóng tệp tin • Đóng tệp là đảm bảo những thay đổi dữ liệu được lưu lại trên tệp. • Để đóng tệp ta dùng hàm fclose() có cú pháp khai báo fclose(tenConTroTep); • Kết quả trả về: 0 nếu đóng tệp thành công Ngược lại nếu có lỗi 12 Các thao tác khác • int feof(FILE *fp) o Kiểm tra vị trí con trỏ đã ở cuối tệp chưa o Trả về = 0 nếu sai, ≠ 0 nếu đúng • void rewind(FILE *fp) o Di chuyển con trỏ vị trí về đầu tệp 13 Nội dung Khái niệm cơ bản Các thao tác với tệp tin Truy nhập tệp tin văn bản Truy nhập tệp tin nhị hân 14 3. Truy nhập tệp văn bản • int fscanf(FILE *fp, char[] xauDinhDang, danh_sach_dia_chi) o Đọc dữ liệu từ tệp o Sử dụng tương tự scanf() o Trả về số lượng giá trị đọc được theo xâu định dạng nếu hàm thực hiện thành công, ngược lại trả về giá trị nhỏ hơn o Hạn chế: Cần biết định dạng dữ liệu trong tệp • int fflush(FILE *fp) o Xóa bộ đệm đọc tệp o Nên thực hiện trước khi dùng hàm fscanf() 15 3. Truy nhập tệp văn bản (tiếp) • char* fgets(char[] str, int n, FILE* fp) o Đọc tối đa n-1 ký tự, hoặc khi gặp dấu xuống dòng trong tệp fp và gán cho str o Tự động thêm ký tự “\n” o Trả về con trỏ tới xâu str nếu thành công, ngược lại trả về NULL • int fgetc(FILE *fp) o Đọc 1 ký tự trên tệp o Trả về mã ASCII của ký tự nếu thành công, ngược lại trả về EOF 16 3. Truy nhập tệp văn bản (tiếp) •int fprintf(FILE *fp, char[] xauDinhDang, danh_sach_tham_so) o Ghi dữ liệu lên tệp o Tương tự printf() o Trả về số byte đã ghi nếu thành công, ngược lại trả về số < 0 • int fputs(char ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Tin học đại cương Tin học đại cương Tệp tin Thao tác với tệp tin Truy nhập tệp tin văn bản Truy nhập tệp tin nhị phânTài liệu liên quan:
-
Ứng dụng công cụ Quizizz thiết kế trò chơi học tập trong giảng dạy học phần tin học đại cương
12 trang 304 0 0 -
Tài liệu hướng dẫn thực hành Tin học đại cương - ĐH Bách Khoa Hà Nội
40 trang 260 0 0 -
Giáo trình Tin học đại cương part 7
19 trang 245 0 0 -
Giáo trình Tin học đại cương: Phần 1 - ĐH Kinh tế Quốc Dân
130 trang 159 0 0 -
Giáo trình Tin học đại cương (Tái bản năm 2020): Phần 1 - PGS.TS. Nguyễn Thị Thu Thủy (Chủ biên)
105 trang 143 0 0 -
Giáo trình Tin học đại cương: Phần 1 - Vi Hồng Thắm
90 trang 130 0 0 -
Hướng dẫn thực hành lập trình C trên Visual Studio
9 trang 130 0 0 -
Giáo trình Tin học đại cương: Phần 2 - Trần Đình Khang
118 trang 129 0 0 -
Quản trị người dùng trong Exchange 2007 bằng Powershell
9 trang 108 0 0 -
Đề cương học phần Tin học đại cương
23 trang 105 0 0